* [PATCH] deprecate use of bdflush()
@ 2002-12-02 21:21 Robert Love
2002-12-02 22:11 ` Andrew Morton
0 siblings, 1 reply; 12+ messages in thread
From: Robert Love @ 2002-12-02 21:21 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel
We can never get rid of it if we do not deprecate it - so do so and
print a stern warning to those who still run bdflush daemons.
Patch is against 2.5.49-mm2. Please apply.
Robert Love
fs/buffer.c | 6 ++++++
1 files changed, 6 insertions(+)
diff -urN linux-2.5.49-mm2/fs/buffer.c linux/fs/buffer.c
--- linux-2.5.49-mm2/fs/buffer.c 2002-12-02 16:07:53.000000000 -0500
+++ linux/fs/buffer.c 2002-12-02 16:17:16.000000000 -0500
@@ -2757,11 +2757,17 @@
/*
* There are no bdflush tunables left. But distributions are
* still running obsolete flush daemons, so we terminate them here.
+ *
+ * Use of bdflush() is deprecated and will be removed in a future kernel.
+ * The `pdflush' kernel threads fully replace bdflush daemons and this call.
*/
asmlinkage long sys_bdflush(int func, long data)
{
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
+
+ printk(KERN_WARNING "warning: the bdflush system call is deprecated "
+ "and no longer needed. Stop using it.\n");
if (func == 1)
do_exit(0);
return 0;
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH] deprecate use of bdflush() 2002-12-02 21:21 [PATCH] deprecate use of bdflush() Robert Love @ 2002-12-02 22:11 ` Andrew Morton 2002-12-02 22:26 ` Robert Love 0 siblings, 1 reply; 12+ messages in thread From: Andrew Morton @ 2002-12-02 22:11 UTC (permalink / raw) To: Robert Love; +Cc: linux-kernel Robert Love wrote: > > We can never get rid of it if we do not deprecate it - so do so and > print a stern warning to those who still run bdflush daemons. > Ho-hum. I was going to do this months ago but general exhaustion and sluggishness won out. We should tell the user which process called sys_bdflush() to aid their expunging efforts. --- 25/fs/buffer.c~deprecate-bdflush Mon Dec 2 13:40:44 2002 +++ 25-akpm/fs/buffer.c Mon Dec 2 13:45:11 2002 @@ -2755,11 +2755,25 @@ int block_sync_page(struct page *page) /* * There are no bdflush tunables left. But distributions are * still running obsolete flush daemons, so we terminate them here. + * + * Use of bdflush() is deprecated and will be removed in a future kernel. + * The `pdflush' kernel threads fully replace bdflush daemons and this call. */ asmlinkage long sys_bdflush(int func, long data) { + static int msg_count; + if (!capable(CAP_SYS_ADMIN)) return -EPERM; + + if (msg_count < 5) { + msg_count++; + printk(KERN_INFO + "warning: process `%s' used the obsolete bdflush" + " system call\nFix your initscripts?\n", + current->comm); + } + if (func == 1) do_exit(0); return 0; _ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-02 22:11 ` Andrew Morton @ 2002-12-02 22:26 ` Robert Love 2002-12-03 14:24 ` Bill Davidsen 0 siblings, 1 reply; 12+ messages in thread From: Robert Love @ 2002-12-02 22:26 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel On Mon, 2002-12-02 at 17:11, Andrew Morton wrote: > Ho-hum. I was going to do this months ago but general exhaustion > and sluggishness won out. > > We should tell the user which process called sys_bdflush() to aid > their expunging efforts. Good idea. I could do without the rate limiting, though - the print is after the CAP_SYS_ADMIN check. Root has plenty of other ways to print crap to the screen and it saves 32-bits from bss. But, uh, not a big deal at all either way. Robert Love fs/buffer.c | 7 +++++++ 1 files changed, 7 insertions(+) diff -urN linux-2.5.49-mm2/fs/buffer.c linux/fs/buffer.c --- linux-2.5.49-mm2/fs/buffer.c 2002-12-02 16:07:53.000000000 -0500 +++ linux/fs/buffer.c 2002-12-02 17:24:57.000000000 -0500 @@ -2757,11 +2757,18 @@ /* * There are no bdflush tunables left. But distributions are * still running obsolete flush daemons, so we terminate them here. + * + * Use of bdflush() is deprecated and will be removed in a future kernel. + * The `pdflush' kernel threads fully replace bdflush daemons and this call. */ asmlinkage long sys_bdflush(int func, long data) { if (!capable(CAP_SYS_ADMIN)) return -EPERM; + + printk(KERN_WARNING "warning: process `%s' used the deprecated bdflush" + " system call. Fix your initscripts?\n", + current->comm); if (func == 1) do_exit(0); return 0; ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-02 22:26 ` Robert Love @ 2002-12-03 14:24 ` Bill Davidsen 2002-12-03 17:10 ` Robert Love 0 siblings, 1 reply; 12+ messages in thread From: Bill Davidsen @ 2002-12-03 14:24 UTC (permalink / raw) To: Robert Love; +Cc: Andrew Morton, linux-kernel On 2 Dec 2002, Robert Love wrote: > On Mon, 2002-12-02 at 17:11, Andrew Morton wrote: > > > Ho-hum. I was going to do this months ago but general exhaustion > > and sluggishness won out. > > > > We should tell the user which process called sys_bdflush() to aid > > their expunging efforts. > > Good idea. > > I could do without the rate limiting, though - the print is after the > CAP_SYS_ADMIN check. Root has plenty of other ways to print crap to the > screen and it saves 32-bits from bss. But, uh, not a big deal at all > either way. My take on this is that it's premature. This would be fine in the 2.6.0-rc series, but the truth is that the majority of 2.5 users boot 2.5 for testing but run 2.4 for normal use. They aren't going to get rid of bdflush and this just craps up the logs. At least with the occurrence limit it will only happen a few times. I would like to see it once only, myself, as a reminder rather than a nag. While it's possible to do version dependent things in init scripts, in this case there is no need, the call hurts nothing. Some users may post to the list asking what it means, and others may actually do it, and break their production systems. -- bill davidsen <davidsen@tmr.com> CTO, TMR Associates, Inc Doing interesting things with little computers since 1979. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-03 14:24 ` Bill Davidsen @ 2002-12-03 17:10 ` Robert Love 2002-12-03 19:05 ` Paul Gortmaker 2002-12-04 13:10 ` Daniel Kobras 0 siblings, 2 replies; 12+ messages in thread From: Robert Love @ 2002-12-03 17:10 UTC (permalink / raw) To: Bill Davidsen; +Cc: Andrew Morton, linux-kernel On Tue, 2002-12-03 at 09:24, Bill Davidsen wrote: > My take on this is that it's premature. This would be fine in the 2.6.0-rc > series, but the truth is that the majority of 2.5 users boot 2.5 for > testing but run 2.4 for normal use. They aren't going to get rid of > bdflush and this just craps up the logs. At least with the occurrence > limit it will only happen a few times. I would like to see it once only, > myself, as a reminder rather than a nag. 2.4 does not need bdflush, either. Bdflush the user-space daemon went away a long time ago, ~1995. Besides, you only see the message once for each daemon that is loaded. So regardless of the rate limiting you probably only see it once on boot. Robert Love ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-03 17:10 ` Robert Love @ 2002-12-03 19:05 ` Paul Gortmaker 2002-12-04 1:12 ` Krzysztof Halasa 2002-12-04 13:10 ` Daniel Kobras 1 sibling, 1 reply; 12+ messages in thread From: Paul Gortmaker @ 2002-12-03 19:05 UTC (permalink / raw) To: Robert Love; +Cc: Bill Davidsen, Andrew Morton, linux-kernel Robert Love wrote: > > On Tue, 2002-12-03 at 09:24, Bill Davidsen wrote: > > > My take on this is that it's premature. This would be fine in the 2.6.0-rc > > series, but the truth is that the majority of 2.5 users boot 2.5 for > > testing but run 2.4 for normal use. They aren't going to get rid of > > bdflush and this just craps up the logs. At least with the occurrence > > limit it will only happen a few times. I would like to see it once only, > > myself, as a reminder rather than a nag. > > 2.4 does not need bdflush, either. > > Bdflush the user-space daemon went away a long time ago, ~1995. Yes, removal is not premature; long overdue if anything. At the risk of overlapping Andries' job as official historian, I found this in my archive of cruft. So it was almost 1996 :) Paul. -- Date: Fri, 22 Dec 1995 07:59:40 +0200 From: Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI> Message-Id: <199512220559.HAA25383@keos.cs.Helsinki.FI> In-Reply-To: Paul Gortmaker's message as of Dec 22, 3:13 To: Paul Gortmaker <gpg109@rsphy1.anu.edu.au>, linux-kernel@vger.rutgers.edu Subject: Re: Ramdisk fixes for 1.3.49 Status: RO Paul Gortmaker: "Ramdisk fixes for 1.3.49" (Dec 22, 3:13): > > I don't know if anyone noticed, but I came across this while impementing > the CONFIG_BLK_DEV_RAM. > > The new ramdisk code has an ugly hack (IMHO) where it uses the global > variable rd_loading for the *sole purpose* of blocking the > > "Warning - bdflush not running." > > message (buffer.c) while loading the image off of the floppy. Eeecch. > Rather than have this ramdisk dependant cruft in buffer.c, I fixed this > in a much better fashion. The solution is simple. We just call > sync_dev(ramdisk) ourselves every so often while writing the floppy > contents to the ramdisk. By doing this, wakeup_bdflush() never gets > tripped, and thus no "Warning - bdflush not running." messages pop out. > And buffer.c doesn't get touched. Nice and clean. I'd prefer it even more if you'd just start "bdflush" instead. I know that user-level isn't running yet, but it should be reasonably trivial to do kernel_thread(sys_bdflush, NULL); and off you go.. Could you try this instead? I'd be happer (this is how bdflush should have been started in the first place, but back when bdflush was done there were no easy access to kernel threads..) (oh, btw, in the meantime I applied this set of patches, because they are better than it used to be. But I'd be grateful for a new set on top of this that does the above, hint, hint). Linus ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-03 19:05 ` Paul Gortmaker @ 2002-12-04 1:12 ` Krzysztof Halasa 2002-12-04 16:11 ` Robert Love 0 siblings, 1 reply; 12+ messages in thread From: Krzysztof Halasa @ 2002-12-04 1:12 UTC (permalink / raw) To: linux-kernel Paul Gortmaker <p_gortmaker@yahoo.com> writes: > Yes, removal is not premature; long overdue if anything. At the risk > of overlapping Andries' job as official historian, I found this in my > archive of cruft. So it was almost 1996 :) So why don't we print the warning with 2.4 as well? intrepid:~/CVS$ rpm -qi bdflush Name : bdflush Relocations: (not relocateable) Version : 1.5 Vendor: Red Hat, Inc. Release : 21 Build Date: Sun Jun 23 16:19:27 2002 And it's run by /etc/inittab. I don't know if returning -EINVAL (= removing the call completely in 2.5) isn't better, though - does it have any compatibility implications? -- Krzysztof Halasa Network Administrator ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-04 1:12 ` Krzysztof Halasa @ 2002-12-04 16:11 ` Robert Love 0 siblings, 0 replies; 12+ messages in thread From: Robert Love @ 2002-12-04 16:11 UTC (permalink / raw) To: Krzysztof Halasa; +Cc: linux-kernel On Tue, 2002-12-03 at 20:12, Krzysztof Halasa wrote: > So why don't we print the warning with 2.4 as well? We should of. Now its too late - we cannot start printing evil warnings on existing 2.4 systems. > I don't know if returning -EINVAL (= removing the call completely in 2.5) > isn't better, though - does it have any compatibility implications? Right now the call forces a do_exit(), so the application terminates. If we just returned `-EINVAL' the application might sit around doing nothing. Robert Love ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-03 17:10 ` Robert Love 2002-12-03 19:05 ` Paul Gortmaker @ 2002-12-04 13:10 ` Daniel Kobras 2002-12-04 16:12 ` Robert Love 1 sibling, 1 reply; 12+ messages in thread From: Daniel Kobras @ 2002-12-04 13:10 UTC (permalink / raw) To: linux-kernel On Tue, Dec 03, 2002 at 12:10:01PM -0500, Robert Love wrote: > 2.4 does not need bdflush, either. > > Bdflush the user-space daemon went away a long time ago, ~1995. sys_bdflush() is still usable in 2.4 to tune kupdated's parameters. Only func==1 functionality is long gone. > Besides, you only see the message once for each daemon that is loaded. > So regardless of the rate limiting you probably only see it once on > boot. And each time you try to twist the flushing parameters. Regards, Daniel. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-04 13:10 ` Daniel Kobras @ 2002-12-04 16:12 ` Robert Love 2002-12-04 19:29 ` Daniel Kobras 2002-12-05 17:39 ` Bill Davidsen 0 siblings, 2 replies; 12+ messages in thread From: Robert Love @ 2002-12-04 16:12 UTC (permalink / raw) To: Daniel Kobras; +Cc: linux-kernel On Wed, 2002-12-04 at 08:10, Daniel Kobras wrote: > > Bdflush the user-space daemon went away a long time ago, ~1995. > > sys_bdflush() is still usable in 2.4 to tune kupdated's parameters. > Only func==1 functionality is long gone. Right. But the bdflush daemon was gone in 2.4. > > Besides, you only see the message once for each daemon that is loaded. > > So regardless of the rate limiting you probably only see it once on > > boot. > > And each time you try to twist the flushing parameters. There are no flushing parameters in 2.5, and this is a patch for 2.5. Robert Love ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-04 16:12 ` Robert Love @ 2002-12-04 19:29 ` Daniel Kobras 2002-12-05 17:39 ` Bill Davidsen 1 sibling, 0 replies; 12+ messages in thread From: Daniel Kobras @ 2002-12-04 19:29 UTC (permalink / raw) To: linux-kernel On Wed, Dec 04, 2002 at 11:12:42AM -0500, Robert Love wrote: > There are no flushing parameters in 2.5, and this is a patch for 2.5. I'm aware of that. And I'm not opposed to the patch, but I'm opposed to the notion that sys_bdflush as a whole has been useless for ages. E.g. noflushd[1] on 2.4 happily calls it every five seconds. Count this as a vote for rate limiting the message, for the benefit of folks switching between 2.4 and 2.5. Regards, Daniel. [1] Admittedly a bad example as it won't start on 2.5 anyway, but there might be similar codes around. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] deprecate use of bdflush() 2002-12-04 16:12 ` Robert Love 2002-12-04 19:29 ` Daniel Kobras @ 2002-12-05 17:39 ` Bill Davidsen 1 sibling, 0 replies; 12+ messages in thread From: Bill Davidsen @ 2002-12-05 17:39 UTC (permalink / raw) To: Robert Love; +Cc: Daniel Kobras, linux-kernel On 4 Dec 2002, Robert Love wrote: > On Wed, 2002-12-04 at 08:10, Daniel Kobras wrote: > > > > Bdflush the user-space daemon went away a long time ago, ~1995. > > > > sys_bdflush() is still usable in 2.4 to tune kupdated's parameters. > > Only func==1 functionality is long gone. > > Right. But the bdflush daemon was gone in 2.4. It's not *gone* it's just moved into the kernel... F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 1 0 5 1 15 0 0 0 bdflus SW ? 0:00 [bdflush] Clearly it doesn't need the syscall interface, so as long as there's a way to tune useful parameters the interface isn't needed. Don't know why I thought I was doing stuff using that. -- bill davidsen <davidsen@tmr.com> CTO, TMR Associates, Inc Doing interesting things with little computers since 1979. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2002-12-05 17:33 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2002-12-02 21:21 [PATCH] deprecate use of bdflush() Robert Love 2002-12-02 22:11 ` Andrew Morton 2002-12-02 22:26 ` Robert Love 2002-12-03 14:24 ` Bill Davidsen 2002-12-03 17:10 ` Robert Love 2002-12-03 19:05 ` Paul Gortmaker 2002-12-04 1:12 ` Krzysztof Halasa 2002-12-04 16:11 ` Robert Love 2002-12-04 13:10 ` Daniel Kobras 2002-12-04 16:12 ` Robert Love 2002-12-04 19:29 ` Daniel Kobras 2002-12-05 17:39 ` Bill Davidsen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).