Re: [patch] show_buffers() resurrection

Andrea Arcangeli (andrea@suse.de)
Sun, 12 Sep 1999 14:46:18 +0200 (CEST)


On Sat, 11 Sep 1999, David S. Miller wrote:

>Andrea, this was _SPECIFICALLY_ removed because it made the buffer
>cache locking more complex. You risk total and complete deadlock
>unless you change all of the buffer cache spinlocks to be IRQ
>spinlocks.

Do you read my patch? Do you know how spin_trylock works? One of my two
questions must have answer == no.

If you didn't find a way to make it safe without converting all spinlocks
to irq-spinlocks you shouldn't be so sure I can't find a way to do that
safely.

Also 2.2.x has the same bug in SMP since you should do:

spin_trylock(&kernel_flag);

at the top of show_buffers().

And anyway it's extremely stupid to remove the debugging code in a 2.3.x
kernel where you want to get out from the kernel more debugging
information, and left the bug in 2.2.x where 99% of users doesn't care
about such information. Note that also in 2.2.x the bug can be fixed
without removing the function for SMP. On an UP compile instead you should
#ifdef __SMP__ the code if you want to fix all doors for races, since
spin_trylock does nothing on UP (it would work fine if the spinlock
wouldn't be a noop...). Right now in 2.3.x I believe it's better to _not_
comment out the code also considering that such potential irq-race is
present in 2.0.x 2.1.x 2.2.x and considering that my code is completly
safe in a SMP compile. We'll #ifdef __SMP__ the code when we'll be near to
2.4.x.

And even if the lru list information wouldn't be safely-fixable in SMP we
should still printk the "Buffer memory" since in a complete lockup I want
to see such information from the SYSRQ+M.

So I definetly _want_ the show_buffers() resurrection.

The only point I can agree with you is the UP compile, if you want to hide
the debugging information to not risk to irq-race I can send you a new
patch with only an additional #ifdef __SMP__. I believe the right thing
to do is adding an #ifdef __SMP__ at code-freeze time.

Andrea

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/