<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/lib, branch v2.6.20-rc6</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/lib?h=v2.6.20-rc6</id>
<link rel='self' href='https://git.amat.us/linux/atom/lib?h=v2.6.20-rc6'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2006-12-20T18:56:44Z</updated>
<entry>
<title>kobject: kobject_uevent() returns manageable value</title>
<updated>2006-12-20T18:56:44Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
<email>aneesh.kumar@gmail.com</email>
</author>
<published>2006-12-19T21:01:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=542cfce6f36e8c43f71ae9c235b78497f350ae55'/>
<id>urn:sha1:542cfce6f36e8c43f71ae9c235b78497f350ae55</id>
<content type='text'>
Since kobject_uevent() function does not return an integer value to
indicate if its operation was completed with success or not, it is worth
changing it in order to report a proper status (success or error) instead
of returning void.

[randy.dunlap@oracle.com: Fix inline kobject functions]
Cc: Mauricio Lin &lt;mauriciolin@gmail.com&gt;
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
Signed-off-by: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>kref refcnt and false positives</title>
<updated>2006-12-20T18:56:43Z</updated>
<author>
<name>Venkatesh Pallipadi</name>
<email>venkatesh.pallipadi@intel.com</email>
</author>
<published>2006-12-19T21:01:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f334b60b43a0927f4ab1187cbdb4582f5227c3b1'/>
<id>urn:sha1:f334b60b43a0927f4ab1187cbdb4582f5227c3b1</id>
<content type='text'>
With WARN_ON addition to kobject_init()
[ http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19/2.6.19-mm1/dont-use/broken-out/gregkh-driver-kobject-warn.patch ]

I started seeing following WARNING on CPU offline followed by online on my
x86_64 system.

WARNING at lib/kobject.c:172 kobject_init()

Call Trace:
 [&lt;ffffffff8020ab45&gt;] dump_trace+0xaa/0x3ef
 [&lt;ffffffff8020aec4&gt;] show_trace+0x3a/0x50
 [&lt;ffffffff8020b0f6&gt;] dump_stack+0x15/0x17
 [&lt;ffffffff80350abc&gt;] kobject_init+0x3f/0x8a
 [&lt;ffffffff80350be1&gt;] kobject_register+0x1a/0x3e
 [&lt;ffffffff803bbd89&gt;] sysdev_register+0x5b/0xf9
 [&lt;ffffffff80211d0b&gt;] mce_create_device+0x77/0xf4
 [&lt;ffffffff80211dc2&gt;] mce_cpu_callback+0x3a/0xe5
 [&lt;ffffffff805632fd&gt;] notifier_call_chain+0x26/0x3b
 [&lt;ffffffff8023f6f3&gt;] raw_notifier_call_chain+0x9/0xb
 [&lt;ffffffff802519bf&gt;] _cpu_up+0xb4/0xdc
 [&lt;ffffffff80251a12&gt;] cpu_up+0x2b/0x42
 [&lt;ffffffff803bef00&gt;] store_online+0x4a/0x72
 [&lt;ffffffff803bb6ce&gt;] sysdev_store+0x24/0x26
 [&lt;ffffffff802baaa2&gt;] sysfs_write_file+0xcf/0xfc
 [&lt;ffffffff8027fc6f&gt;] vfs_write+0xae/0x154
 [&lt;ffffffff80280418&gt;] sys_write+0x47/0x6f
 [&lt;ffffffff8020963e&gt;] system_call+0x7e/0x83
DWARF2 unwinder stuck at system_call+0x7e/0x83
Leftover inexact backtrace:

This is a false positive as mce.c is unregistering/registering sysfs
interfaces cleanly on hotplug.

kref_put() and conditional decrement of refcnt seems to be the root cause
for this and the patch below resolves the issue for me.

Signed-off-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;


</content>
</entry>
<entry>
<title>Remove stack unwinder for now</title>
<updated>2006-12-15T16:47:51Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@woody.osdl.org</email>
</author>
<published>2006-12-15T16:43:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d1526e2cda64d5a1de56aef50bad9e5df14245c2'/>
<id>urn:sha1:d1526e2cda64d5a1de56aef50bad9e5df14245c2</id>
<content type='text'>
It has caused more problems than it ever really solved, and is
apparently not getting cleaned up and fixed.  We can put it back when
it's stable and isn't likely to make warning or bug events worse.

In the meantime, enable frame pointers for more readable stack traces.

Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] uml problems with linux/io.h</title>
<updated>2006-12-13T17:05:52Z</updated>
<author>
<name>Al Viro</name>
<email>viro@ftp.linux.org.uk</email>
</author>
<published>2006-12-13T08:35:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ee36c2bf8edb1c3e3855a928b348d29c6359093d'/>
<id>urn:sha1:ee36c2bf8edb1c3e3855a928b348d29c6359093d</id>
<content type='text'>
Remove useless includes of linux/io.h, don't even try to build iomap_copy
on uml (it doesn't have readb() et.al., so...)

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Acked-by: Jeff Dike &lt;jdike@addtoit.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] SLAB: use a multiply instead of a divide in obj_to_index()</title>
<updated>2006-12-13T17:05:49Z</updated>
<author>
<name>Eric Dumazet</name>
<email>dada1@cosmosbay.com</email>
</author>
<published>2006-12-13T08:34:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6a2d7a955d8de6cb19ed9cd194b3c83008a22c32'/>
<id>urn:sha1:6a2d7a955d8de6cb19ed9cd194b3c83008a22c32</id>
<content type='text'>
When some objects are allocated by one CPU but freed by another CPU we can
consume lot of cycles doing divides in obj_to_index().

(Typical load on a dual processor machine where network interrupts are
handled by one particular CPU (allocating skbufs), and the other CPU is
running the application (consuming and freeing skbufs))

Here on one production server (dual-core AMD Opteron 285), I noticed this
divide took 1.20 % of CPU_CLK_UNHALTED events in kernel.  But Opteron are
quite modern cpus and the divide is much more expensive on oldest
architectures :

On a 200 MHz sparcv9 machine, the division takes 64 cycles instead of 1
cycle for a multiply.

Doing some math, we can use a reciprocal multiplication instead of a divide.

If we want to compute V = (A / B)  (A and B being u32 quantities)
we can instead use :

V = ((u64)A * RECIPROCAL(B)) &gt;&gt; 32 ;

where RECIPROCAL(B) is precalculated to ((1LL &lt;&lt; 32) + (B - 1)) / B

Note :

I wrote pure C code for clarity. gcc output for i386 is not optimal but
acceptable :

mull   0x14(%ebx)
mov    %edx,%eax // part of the &gt;&gt; 32
xor     %edx,%edx // useless
mov    %eax,(%esp) // could be avoided
mov    %edx,0x4(%esp) // useless
mov    (%esp),%ebx

[akpm@osdl.org: small cleanups]
Signed-off-by: Eric Dumazet &lt;dada1@cosmosbay.com&gt;
Cc: Christoph Lameter &lt;clameter@sgi.com&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>Fix typo in new debug options.</title>
<updated>2006-12-12T19:16:36Z</updated>
<author>
<name>Dave Jones</name>
<email>davej@redhat.com</email>
</author>
<published>2006-12-12T19:16:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=86327d19f7d91270b0bbd06ad4581e2f6fa3bec0'/>
<id>urn:sha1:86327d19f7d91270b0bbd06ad4581e2f6fa3bec0</id>
<content type='text'>
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] add MODULE_* attributes to bit reversal library</title>
<updated>2006-12-10T18:07:52Z</updated>
<author>
<name>Cal Peake</name>
<email>cp@absolutedigital.net</email>
</author>
<published>2006-12-10T11:22:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0258736a0a2cde8ab30725b601aeca4cf8bc93ab'/>
<id>urn:sha1:0258736a0a2cde8ab30725b601aeca4cf8bc93ab</id>
<content type='text'>
Add MODULE_* attributes to the new bit reversal library. Most notably
MODULE_LICENSE which prevents superfluous kernel tainting.

Signed-off-by: Cal Peake &lt;cp@absolutedigital.net&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] Kconfig refactoring for better menu nesting</title>
<updated>2006-12-10T17:55:39Z</updated>
<author>
<name>Don Mullis</name>
<email>dwm@meer.net</email>
</author>
<published>2006-12-10T10:18:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bf4735a46a6b8dfc1a951f05683e80374d8baa70'/>
<id>urn:sha1:bf4735a46a6b8dfc1a951f05683e80374d8baa70</id>
<content type='text'>
Refactor Kconfig content to maximize nesting of menus by menuconfig and
xconfig.

Tested by simultaneously running `make xconfig` with and without
patch, and comparing displays.

Signed-off-by: Don Mullis &lt;dwm@meer.net&gt;
Signed-off-by: Randy Dunlap &lt;rdunlap@xenotime.net&gt;
Cc: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] fault-injection: optimize and simplify should_fail()</title>
<updated>2006-12-08T16:29:03Z</updated>
<author>
<name>Don Mullis</name>
<email>dwm@meer.net</email>
</author>
<published>2006-12-08T10:39:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f1729c28a37e4f11ea5d9f468ab26adadb1aadab'/>
<id>urn:sha1:f1729c28a37e4f11ea5d9f468ab26adadb1aadab</id>
<content type='text'>
Trivial optimization and simplification of should_fail().

Do cheaper disqualification tests first (performance gain not quantified).
Simplify logic; eliminate goto.

Signed-off-by: Don Mullis &lt;dwm@meer.net&gt;
Cc: Akinobu Mita &lt;akinobu.mita@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] fault-injection: Clamp debugfs stacktrace-depth to MAX_STACK_TRACE_DEPTH</title>
<updated>2006-12-08T16:29:03Z</updated>
<author>
<name>Don Mullis</name>
<email>dwm@meer.net</email>
</author>
<published>2006-12-08T10:39:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a124c28ef85d9b780c418b2c5d8f01cd6a06ff3e'/>
<id>urn:sha1:a124c28ef85d9b780c418b2c5d8f01cd6a06ff3e</id>
<content type='text'>
Clamp /debug/fail*/stacktrace-depth to MAX_STACK_TRACE_DEPTH.  Ensures that a
read of /debug/fail*/stacktrace-depth always returns a truthful answer.

Signed-off-by: Don Mullis &lt;dwm@meer.net&gt;
Cc: Akinobu Mita &lt;akinobu.mita@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
</feed>
