From: Russell King <rmk+lkml@arm.linux.org.uk>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: Greg KH <greg@kroah.com>, Andrew Morton <akpm@osdl.org>,
Linus Torvalds <torvalds@osdl.org>,
linux-kernel@vger.kernel.org, Jens Axboe <axboe@suse.de>,
"Brown, Len" <len.brown@intel.com>,
"David S. Miller" <davem@davemloft.net>,
linux-acpi@vger.kernel.org,
linux-usb-devel@lists.sourceforge.net, "Yu,
Luming" <luming.yu@intel.com>, Ben Castricum <lk@bencastricum.nl>,
sanjoy@mrao.cam.ac.uk, Helge Hafting <helgehaf@aitel.hist.no>,
"Carlo E. Prelz" <fluido@fluido.as>,
Gerrit Bruchh?user <gbruchhaeuser@gmx.de>,
Nicolas.Mailhot@LaPoste.net, Jaroslav Kysela <perex@suse.cz>,
Takashi Iwai <tiwai@suse.de>,
Patrizio Bassi <patrizio.bassi@gmail.com>,
Bj?rn Nilsson <bni.swe@gmail.com>,
Andrey Borzenkov <arvidjaar@mail.ru>,
"P. Christeas" <p_christ@hol.gr>, ghrt <ghrt@dial.kappa.ro>,
jinhong hu <jinhong.hu@gmail.com>,
Andrew Vasquez <andrew.vasquez@qlogic.com>,
linux-scsi@vger.ker
Subject: Re: Linux 2.6.16-rc3
Date: Thu, 16 Feb 2006 18:09:39 +0000 [thread overview]
Message-ID: <20060216180939.GF29443@flint.arm.linux.org.uk> (raw)
In-Reply-To: <1140112653.3178.9.camel@mulgrave.il.steeleye.com>
On Thu, Feb 16, 2006 at 09:57:32AM -0800, James Bottomley wrote:
> On Thu, 2006-02-16 at 17:12 +0000, Russell King wrote:
> > This is probably an idiotic question, but if there's something in the
> > scsi release handler can't be called in non-process context, why can't
> > scsi queue up the release processing via the work API itself, rather
> > than having to have this additional code and complexity for everyone?
>
> It's because, in order to get a guaranteed single allocation for the
> workqueue to execute in user context, I need to know when the release
> will be called. The only way to do that is to add the execute in
> process context directly to kref_put.
Is there something in the driver model which would prevent something
like this?
static void scsi_release_process(void *p)
{
struct my_work *work = p;
struct device *dev = work->dev;
/* destroy dev */
kfree(work);
}
static void scsi_release(struct device *dev)
{
struct my_work *work;
work = kmalloc(sizeof(struct my_work), GFP_ATOMIC);
if (work) {
INIT_WORK(&work->work, scsi_release_process, work);
work->dev = dev;
schedule_work(&work->work);
} else {
printk(KERN_ERR ...);
}
}
where scsi_release() is the function called by the device model on the
last put of a scsi device.
I guess is more or less what you're trying to do invasively via the
driver model.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
WARNING: multiple messages have this Message-ID (diff)
From: Russell King <rmk+lkml@arm.linux.org.uk>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: Greg KH <greg@kroah.com>, Andrew Morton <akpm@osdl.org>,
Linus Torvalds <torvalds@osdl.org>,
linux-kernel@vger.kernel.org, Jens Axboe <axboe@suse.de>,
"Brown, Len" <len.brown@intel.com>,
"David S. Miller" <davem@davemloft.net>,
linux-acpi@vger.kernel.org,
linux-usb-devel@lists.sourceforge.net, "Yu,
Luming" <luming.yu@intel.com>, Ben Castricum <lk@bencastricum.nl>,
sanjoy@mrao.cam.ac.uk, Helge Hafting <helgehaf@aitel.hist.no>,
"Carlo E. Prelz" <fluido@fluido.as>,
Gerrit Bruchh?user <gbruchhaeuser@gmx.de>,
Nicolas.Mailhot@LaPoste.net, Jaroslav Kysela <perex@suse.cz>,
Takashi Iwai <tiwai@suse.de>,
Patrizio Bassi <patrizio.bassi@gmail.com>,
Bj?rn Nilsson <bni.swe@gmail.com>,
Andrey Borzenkov <arvidjaar@mail.ru>,
"P. Christeas" <p_christ@hol.gr>, ghrt <ghrt@dial.kappa.ro>,
jinhong hu <jinhong.hu@gmail.com>,
Andrew Vasquez <andrew.vasquez@qlogic.com>,
linux-scsi@vger.kernel.org, Benjamin LaHaise <bcrl@kvack.org>
Subject: Re: Linux 2.6.16-rc3
Date: Thu, 16 Feb 2006 18:09:39 +0000 [thread overview]
Message-ID: <20060216180939.GF29443@flint.arm.linux.org.uk> (raw)
In-Reply-To: <1140112653.3178.9.camel@mulgrave.il.steeleye.com>
On Thu, Feb 16, 2006 at 09:57:32AM -0800, James Bottomley wrote:
> On Thu, 2006-02-16 at 17:12 +0000, Russell King wrote:
> > This is probably an idiotic question, but if there's something in the
> > scsi release handler can't be called in non-process context, why can't
> > scsi queue up the release processing via the work API itself, rather
> > than having to have this additional code and complexity for everyone?
>
> It's because, in order to get a guaranteed single allocation for the
> workqueue to execute in user context, I need to know when the release
> will be called. The only way to do that is to add the execute in
> process context directly to kref_put.
Is there something in the driver model which would prevent something
like this?
static void scsi_release_process(void *p)
{
struct my_work *work = p;
struct device *dev = work->dev;
/* destroy dev */
kfree(work);
}
static void scsi_release(struct device *dev)
{
struct my_work *work;
work = kmalloc(sizeof(struct my_work), GFP_ATOMIC);
if (work) {
INIT_WORK(&work->work, scsi_release_process, work);
work->dev = dev;
schedule_work(&work->work);
} else {
printk(KERN_ERR ...);
}
}
where scsi_release() is the function called by the device model on the
last put of a scsi device.
I guess is more or less what you're trying to do invasively via the
driver model.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
next prev parent reply other threads:[~2006-02-16 18:09 UTC|newest]
Thread overview: 166+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-13 1:19 Linux 2.6.16-rc3 Linus Torvalds
2006-02-13 3:05 ` Andrew Morton
2006-02-13 3:05 ` Andrew Morton
2006-02-13 3:22 ` Trond Myklebust
2006-02-13 3:22 ` Trond Myklebust
2006-02-13 15:09 ` Benjamin LaHaise
2006-02-13 3:28 ` Sanjoy Mahajan
2006-02-13 3:28 ` Sanjoy Mahajan
2006-02-13 3:36 ` Jeff Garzik
2006-02-13 3:36 ` Jeff Garzik
2006-02-13 4:40 ` James Bottomley
2006-02-13 4:40 ` James Bottomley
2006-02-13 5:20 ` S3 sleep regression bisected (was Re: Linux 2.6.16-rc3) Sanjoy Mahajan
2006-02-13 5:20 ` Sanjoy Mahajan
2006-02-13 7:04 ` Linux 2.6.16-rc3 Arjan van de Ven
2006-02-13 7:04 ` Arjan van de Ven
2006-02-13 8:11 ` Jens Axboe
2006-02-13 8:11 ` Jens Axboe
2006-02-13 9:22 ` Patrizio Bassi
2006-02-13 9:22 ` Patrizio Bassi
2006-02-13 10:07 ` Linux 2.6.16-rc3 - x86_64 specific outstanding bugs Andi Kleen
2006-02-13 12:02 ` Linux 2.6.16-rc3 Takashi Iwai
2006-02-13 12:02 ` Takashi Iwai
2006-02-13 12:37 ` Patrizio Bassi
2006-02-13 12:37 ` Patrizio Bassi
2006-02-13 13:13 ` Takashi Iwai
2006-02-13 13:13 ` Takashi Iwai
2006-02-13 13:31 ` Patrizio Bassi
2006-02-13 13:31 ` Patrizio Bassi
2006-02-13 14:15 ` Takashi Iwai
2006-02-13 14:15 ` Takashi Iwai
2006-02-13 14:34 ` Patrizio Bassi
2006-02-13 14:34 ` Patrizio Bassi
2006-02-13 14:39 ` Takashi Iwai
2006-02-13 14:39 ` Takashi Iwai
2006-02-13 13:09 ` Rafael J. Wysocki
2006-02-13 13:09 ` Rafael J. Wysocki
2006-02-13 13:51 ` Takashi Iwai
2006-02-13 13:51 ` Takashi Iwai
2006-02-13 19:33 ` Rafael J. Wysocki
2006-02-13 19:33 ` Rafael J. Wysocki
2006-02-13 16:36 ` Thierry Vignaud
2006-02-15 6:51 ` Andrew Morton
2006-02-15 13:40 ` Thierry Vignaud
2006-02-15 20:00 ` Andrew Morton
2006-02-13 16:36 ` Thierry Vignaud
2006-02-13 16:10 ` Adrian Bunk
2006-02-13 19:31 ` Daniel Drake
2006-02-13 20:30 ` Paul Fulghum
2006-02-13 20:38 ` Greg KH
2006-02-13 20:38 ` Greg KH
2006-02-14 16:34 ` James Bottomley
2006-02-14 16:34 ` James Bottomley
2006-02-15 16:07 ` [linux-usb-devel] " Alan Stern
2006-02-15 16:27 ` Greg KH
2006-02-15 16:35 ` Arjan van de Ven
2006-02-15 17:06 ` Greg KH
2006-02-15 21:52 ` Alan Stern
2006-02-15 21:59 ` Greg KH
2006-02-15 22:25 ` Alan Stern
2006-02-15 22:37 ` Greg KH
2006-02-15 22:51 ` Alan Stern
2006-02-15 19:58 ` James Bottomley
2006-02-15 22:24 ` Alan Stern
2006-02-16 1:56 ` James Bottomley
2006-02-16 1:56 ` James Bottomley
2006-02-16 17:12 ` Russell King
2006-02-16 17:12 ` Russell King
2006-02-16 17:34 ` Stefan Richter
2006-02-16 17:34 ` Stefan Richter
2006-02-16 17:57 ` James Bottomley
2006-02-16 17:57 ` James Bottomley
2006-02-16 18:09 ` Russell King [this message]
2006-02-16 18:09 ` Russell King
2006-02-16 18:14 ` James Bottomley
2006-02-16 18:14 ` James Bottomley
2006-02-16 18:18 ` Russell King
2006-02-16 18:18 ` Russell King
2006-02-16 19:09 ` James Bottomley
2006-02-16 19:09 ` James Bottomley
2006-02-16 20:01 ` Jens Axboe
2006-02-16 20:01 ` Jens Axboe
2006-02-18 0:42 ` James Bottomley
2006-02-18 0:42 ` James Bottomley
2006-02-18 1:00 ` Greg KH
2006-02-18 1:00 ` Greg KH
2006-02-18 2:12 ` Roland Dreier
2006-02-18 2:12 ` Roland Dreier
2006-02-18 5:30 ` Matthew Wilcox
2006-02-18 10:03 ` [linux-usb-devel] " Sergey Vlasov
2006-02-18 10:03 ` Sergey Vlasov
2006-02-19 14:30 ` James Bottomley
2006-02-19 14:30 ` James Bottomley
2006-02-23 18:43 ` James Bottomley
2006-02-23 18:43 ` James Bottomley
2006-02-18 20:16 ` Alan Stern
2006-02-18 20:16 ` Alan Stern
2006-02-19 13:51 ` James Bottomley
2006-02-19 13:51 ` James Bottomley
2006-02-14 15:19 ` [PATCH] x86: fix oprofile kernel callgraph regression Gerald Britton
2006-02-14 15:58 ` Hugh Dickins
2006-02-18 21:06 ` Linux 2.6.16-rc3 Helge Hafting
2006-02-18 21:06 ` Helge Hafting
2006-02-22 16:49 ` Ben Castricum
2006-02-13 8:46 ` Jan Dittmer
2006-02-13 9:07 ` Yoichi Yuasa
2006-02-13 15:47 ` Linus Torvalds
2006-02-13 22:11 ` Jan Dittmer
[not found] ` <3aa654a40602130231p1c476e99paa986fa198951839@mail.gmail.com>
2006-02-13 10:39 ` Andrew Morton
2006-02-13 10:54 ` Con Kolivas
2006-02-13 17:27 ` Andi Kleen
[not found] ` <3aa654a40602130251t174a5e4bg28a52a147cc9b2cf@mail.gmail.com>
2006-02-13 10:56 ` Andrew Morton
2006-02-14 2:44 ` Andrew Morton
2006-02-14 2:54 ` Dave Jones
2006-02-14 3:21 ` Andrew Morton
2006-02-13 17:09 ` 2.6.16-rc3: more regressions Adrian Bunk
2006-02-13 17:24 ` Dave Jones
2006-02-13 17:30 ` Dmitry Torokhov
2006-02-13 17:35 ` Linus Torvalds
2006-02-13 17:46 ` Dave Jones
2006-02-13 18:04 ` Linus Torvalds
2006-02-13 18:16 ` Linus Torvalds
2006-02-13 18:27 ` Dave Jones
2006-02-13 18:33 ` Linus Torvalds
2006-02-13 18:42 ` Adrian Bunk
2006-02-13 18:34 ` Adrian Bunk
2006-02-13 18:42 ` Dave Jones
2006-02-13 18:47 ` Adrian Bunk
2006-02-13 18:51 ` Alex Deucher
2006-02-13 18:50 ` Linus Torvalds
2006-02-13 19:09 ` Adrian Bunk
2006-02-13 19:17 ` Linus Torvalds
2006-02-13 19:21 ` Linus Torvalds
2006-02-13 23:27 ` Jesse Allen
2006-02-13 23:35 ` Felix Kühling
2006-02-15 16:22 ` Jesse Allen
2006-02-16 22:00 ` Dave Airlie
2006-02-14 23:55 ` Gerhard Mack
2006-02-14 0:08 ` Dave Airlie
2006-02-14 0:29 ` Dave Jones
2006-02-14 0:33 ` Dave Airlie
2006-02-13 18:33 ` Mark Fasheh
-- strict thread matches above, loose matches on Subject: below --
2006-02-13 6:59 Linux 2.6.16-rc3 Brown, Len
2006-02-13 6:59 ` Brown, Len
2006-02-13 7:07 Brown, Len
2006-02-13 7:07 ` Brown, Len
2006-02-13 7:13 ` David S. Miller
2006-02-13 7:43 ` Sanjoy Mahajan
2006-02-13 7:43 ` Sanjoy Mahajan
2006-02-13 8:02 Brown, Len
2006-02-13 8:02 ` Brown, Len
2006-02-13 8:12 ` Andrew Morton
2006-02-13 8:42 ` Sanjoy Mahajan
2006-02-13 8:57 ` Arjan van de Ven
2006-02-14 3:08 ` Michal Jaegermann
2006-02-14 3:28 ` Andrew Morton
2006-02-14 4:48 ` Dave Jones
2006-02-14 5:29 ` Arjan van de Ven
2006-02-14 6:22 ` Michal Jaegermann
2006-02-16 23:04 ` Pavel Machek
2006-02-14 3:30 ` Lee Revell
2006-02-14 6:55 ` Michal Jaegermann
2006-02-14 5:31 ` Arjan van de Ven
2006-02-14 21:17 ` Sanjoy Mahajan
2006-02-14 6:23 Brown, Len
2006-02-14 6:23 ` Brown, Len
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060216180939.GF29443@flint.arm.linux.org.uk \
--to=rmk+lkml@arm.linux.org.uk \
--cc=James.Bottomley@SteelEye.com \
--cc=Nicolas.Mailhot@LaPoste.net \
--cc=akpm@osdl.org \
--cc=andrew.vasquez@qlogic.com \
--cc=arvidjaar@mail.ru \
--cc=axboe@suse.de \
--cc=bni.swe@gmail.com \
--cc=davem@davemloft.net \
--cc=fluido@fluido.as \
--cc=gbruchhaeuser@gmx.de \
--cc=ghrt@dial.kappa.ro \
--cc=greg@kroah.com \
--cc=helgehaf@aitel.hist.no \
--cc=jinhong.hu@gmail.com \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.ker \
--cc=linux-usb-devel@lists.sourceforge.net \
--cc=lk@bencastricum.nl \
--cc=luming.yu@intel.com \
--cc=p_christ@hol.gr \
--cc=patrizio.bassi@gmail.com \
--cc=perex@suse.cz \
--cc=sanjoy@mrao.cam.ac.uk \
--cc=tiwai@suse.de \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.