login
Login
/
Register
Search
Search this site:
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2010
»
December
»
7
Re: [Use cpuops V1 05/11] core: Replace __get_cpu_var with __this_cpu_read if not used for an address.
view
thread
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
[view in full thread]
From: Tejun Heo
Subject:
Re: [Use cpuops V1 05/11] core: Replace __get_cpu_var with __this_cpu_read if not used for an address.
Date: Tuesday, December 7, 2010 - 7:29 am
Hello, On 12/06/2010 06:16 PM, Christoph Lameter wrote:
quoted text
> __get_cpu_var() can be replaced with this_cpu_read and will then use a single > read instruction with implied address calculation to access the correct per cpu > instance. > > However, the address of a per cpu variable passed to __this_cpu_read() cannot be > determed (since its an implied address conversion through segment prefixes). > Therefore apply this only to uses of __get_cpu_var where the addres of the > variable is not used. > > Cc: Pekka Enberg <penberg@cs.helsinki.fi> > Cc: Hugh Dickins <hughd@google.com> > Cc: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Christoph Lameter <cl@linux.com>
...
quoted text
> @@ -802,18 +802,18 @@ static void takeover_tasklets(unsigned i > > /* Find end, append list for that CPU. */ > if (&per_cpu(tasklet_vec, cpu).head != per_cpu(tasklet_vec, cpu).tail) { > - *(__get_cpu_var(tasklet_vec).tail) = per_cpu(tasklet_vec, cpu).head; > - __get_cpu_var(tasklet_vec).tail = per_cpu(tasklet_vec, cpu).tail; > + *__this_cpu_read(tasklet_vec.tail) = per_cpu(tasklet_vec, cpu).head; > + this_cpu_write(tasklet_vec.tail, per_cpu(tasklet_vec, cpu).tail); > per_cpu(tasklet_vec, cpu).head = NULL; > per_cpu(tasklet_vec, cpu).tail = &per_cpu(tasklet_vec, cpu).head; > } > raise_softirq_irqoff(TASKLET_SOFTIRQ); > > if (&per_cpu(tasklet_hi_vec, cpu).head != per_cpu(tasklet_hi_vec, cpu).tail) { > - *__get_cpu_var(tasklet_hi_vec).tail = per_cpu(tasklet_hi_vec, cpu).head; > - __get_cpu_var(tasklet_hi_vec).tail = per_cpu(tasklet_hi_vec, cpu).tail; > + *__this_cpuo_read(tasklet_hi_vec.tail) = per_cpu(tasklet_hi_vec, cpu).head; > + __this_cpu_write(tasklet_hi_vec.tail, per_cpu(tasklet_hi_vec, cpu).tail;
I don't think __this_cpuo_read() would build. -- tejun --
unsubscribe notice
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
Messages in current thread:
[Use cpuops V1 05/11] core: Replace __get_cpu_var with __t ...
, Christoph Lameter
, (Mon Dec 6, 10:16 am)
Re: [Use cpuops V1 05/11] core: Replace __get_cpu_var with ...
, Tejun Heo
, (Tue Dec 7, 7:29 am)
Re: [Use cpuops V1 05/11] core: Replace __get_cpu_var with ...
, Christoph Lameter
, (Tue Dec 7, 7:51 am)
Re: [Use cpuops V1 05/11] core: Replace __get_cpu_var with ...
, Tejun Heo
, (Tue Dec 7, 8:21 am)
Re: [Use cpuops V1 05/11] core: Replace __get_cpu_var with ...
, Christoph Lameter
, (Tue Dec 7, 8:38 am)
Re: [Use cpuops V1 05/11] core: Replace __get_cpu_var with ...
, Tejun Heo
, (Wed Dec 8, 8:24 am)
Navigation
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Tony Luck
Re: Hardware Error Kernel Mini-Summit
James Bottomley
Re: [PATCH -mm 1/2] scsi: remove dma_is_consistent usage in 53c700
Andrey Borzenkov
Re: [possible regression] 2.6.22 reiserfs/libata sporadically hangs on resume from...
Linus Torvalds
Linux 2.6.26-rc6
Jeffrey V. Merkey
Re: Versioning file system
git
:
Morten Welinder
Re: [PATCH] use xrealloc in help.c
Junio C Hamano
Re: [PATCH 2/3] git-add--interactive: remove hunk coalescing
Jörg Sommer
[PATCH v2 08/13] Unify the lenght of $SHORT* and the commits in the TODO list
Boyd Lynn Gerber
Re: [VOTE] git versus mercurial
Stefan Näwe
Re: [PATCH] git-gui: use --exclude-standard to check for untracked files
linux-netdev
:
Andreas Sundstrom
Re: ~60k interrupts/sec for 1Gb/s iperf with r8169
David Miller
Re: [2.6.30-rc3] powerpc: compilation error of mace module
Denys Fedoryshchenko
Re: circular locking, mirred, 2.6.24.2
David Miller
Re: [PATCH -next] sfc: Use correct macro to set event bitfield
David Miller
Re: [PATCH] ipv6: fix display of local and remote sit endpoints
git-commits-head
:
Linux Kernel Mailing List
V4L/DVB: tm6000: add special usb request to quit i2c tuner transfer
Linux Kernel Mailing List
OMAP: DSS2: SDI driver
Linux Kernel Mailing List
PCI: introduce pci_pcie_cap()
Linux Kernel Mailing List
m68k: amiga - Mouse platform device conversion
Linux Kernel Mailing List
drivers/acpi: use kasprintf
openbsd-misc
:
frantisek holop
Re: mount ffs as msdos, system hangs
Ted Bullock
Re: Proliant DL380 G3 cannot get on network
Úlfar M. E. Johnson
installing openbsd in xen
Eric Furman
Re: Defending OpenBSD Performance
Damien Miller
Re: Patching a SSH 'Weakness'
Colocation donated by:
Syndicate