From: Daniel Phillips <phillips@istop.com>
To: Roland Dreier <rolandd@cisco.com>
Cc: Giridhar Pemmasani <giri@lmc.cs.sunysb.edu>,
linux-kernel@vger.kernel.org, Andi Kleen <ak@suse.de>
Subject: Re: RFC: i386: kill !4KSTACKS
Date: Tue, 6 Sep 2005 20:04:01 -0400 [thread overview]
Message-ID: <200509062004.01535.phillips@istop.com> (raw)
In-Reply-To: <52ll29q190.fsf@cisco.com>
On Tuesday 06 September 2005 18:28, Roland Dreier wrote:
> Daniel> There are only two stacks involved, the normal kernel
> Daniel> stack and your new ndis stack. You save ESP of the kernel
> Daniel> stack at the base of the ndis stack. When the Windows
> Daniel> code calls your api, you get the ndis ESP, load the kernel
> Daniel> ESP from the base of the ndis stack, push the ndis ESP so
> Daniel> you can get back to the ndis code later, and continue on
> Daniel> your merry way.
>
> [...]
>
> Daniel> You will allocate your own stack once on driver
> Daniel> initialization.
>
> I'm not quite sure it's this trivial. Obviously there are more than
> two stacks involved, since there is more than one kernel stack! (One
> per task plus IRQ stacks) This is more than just a theoretical
> problem. It seems entirely possible that more than one task could
> be in the driver, and clearly they each need their own stack.
Semaphore :-)
Do you expect this to be heavily contended? On a very quick run through the
code, it seems you don't hold any spinlocks going into the driver from
process context. Interrupts... they better fit into a 4K stack or it's game
over. Preemption while on the ndis stack... you can always disable
preemption in this region, but the semaphore should protect you. Task killed
while preempted... I dunno.
> So it's going to be at least a little harder than allocating a single
> stack for NDIS use when the driver starts up.
>
> I personally like the idea raised elsewhere in this thread of running
> the Windows driver in userspace by proxying interrupts, PCI access,
> etc. That seems more robust and probably allows some cool reverse
> engineering hacks.
I expect the userspace approach will be a lot more work and a lot more
overhead too, but then again it sounds like loads of fun.
Regards,
Daniel
next prev parent reply other threads:[~2005-09-07 0:00 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-04 14:51 RFC: i386: kill !4KSTACKS Alex Davis
2005-09-04 17:11 ` Stefan Smietanowski
2005-09-04 17:11 ` Dr. David Alan Gilbert
2005-09-04 17:19 ` Alan Cox
2005-09-06 4:37 ` Andi Kleen
2005-09-06 6:39 ` Denis Vlasenko
2005-09-06 7:13 ` Andi Kleen
2005-09-06 7:32 ` Nick Piggin
2005-09-06 7:50 ` Andi Kleen
2005-09-06 13:29 ` Diego Calleja
2005-09-06 13:25 ` Giridhar Pemmasani
2005-09-06 17:05 ` Jan Kiszka
2005-09-06 17:23 ` Giridhar Pemmasani
2005-09-06 18:42 ` linux-os (Dick Johnson)
2005-09-06 18:46 ` viro
2005-09-06 19:42 ` Jan Kiszka
2005-09-06 20:21 ` linux-os (Dick Johnson)
2005-09-07 17:46 ` Bill Davidsen
2005-09-07 17:54 ` Jan Kiszka
2005-09-07 19:52 ` Daniel Phillips
2005-09-07 20:17 ` Daniel Phillips
2005-09-07 20:29 ` Jan Kiszka
2005-09-07 20:28 ` Jan Kiszka
2005-09-07 21:57 ` Giridhar Pemmasani
2005-09-07 23:25 ` Jan Kiszka
2005-09-08 1:06 ` Giridhar Pemmasani
2005-09-08 19:43 ` Bill Davidsen
2005-09-06 22:19 ` Daniel Phillips
2005-09-06 22:21 ` Andi Kleen
2005-09-06 22:36 ` Daniel Phillips
2005-09-06 23:40 ` Steven Rostedt
2005-09-06 22:28 ` Roland Dreier
2005-09-07 0:04 ` Daniel Phillips [this message]
2005-09-06 22:42 ` Giridhar Pemmasani
2005-09-07 1:59 ` Mark Lord
2005-09-07 3:46 ` Lee Revell
2005-09-07 4:16 ` Daniel Phillips
2005-09-07 5:48 ` Daniel Phillips
2005-09-07 16:43 ` Bill Davidsen
2005-09-08 0:44 ` Alex Davis
-- strict thread matches above, loose matches on Subject: below --
2005-09-06 10:29 Chuck Ebbert
2005-09-05 2:00 Alex Davis
2005-09-05 2:07 ` Sean
2005-09-05 2:29 ` Alex Davis
2005-09-05 3:00 ` Sean
2005-09-05 3:41 ` Alex Davis
2005-09-05 3:51 ` Sean
2005-09-05 4:03 ` Alex Davis
2005-09-05 4:12 ` Sean
2005-09-05 4:36 ` Willy Tarreau
2005-09-05 4:47 ` Sean
2005-09-05 5:01 ` Willy Tarreau
2005-09-05 5:31 ` Sean
2005-09-05 6:04 ` Willy Tarreau
2005-09-05 6:20 ` Sean
2005-09-05 6:29 ` Pekka Enberg
2005-09-05 15:29 ` Horst von Brand
2005-09-08 20:18 ` Bill Davidsen
2005-09-08 22:51 ` Sean
2005-09-05 6:41 ` Sander
2005-09-05 8:01 ` Willy Tarreau
2005-09-08 20:01 ` Bill Davidsen
2005-09-08 20:24 ` Christopher Friesen
2005-09-05 3:54 ` Kyle Moffett
2005-09-05 4:26 ` Dave Jones
2005-09-05 4:48 ` Willy Tarreau
2005-09-06 17:04 ` Benjamin LaHaise
2005-09-05 1:30 Alex Davis
2005-09-05 1:41 ` Adrian Bunk
2005-09-05 1:56 ` dean gaudet
[not found] <4I7UM-M1-1@gated-at.bofh.it>
[not found] ` <4ITG4-8nH-1@gated-at.bofh.it>
[not found] ` <4J1DC-2NU-1@gated-at.bofh.it>
2005-09-04 17:33 ` Robert Hancock
[not found] <4IcUz-7H2-27@gated-at.bofh.it>
[not found] ` <4J2gx-3zf-3@gated-at.bofh.it>
[not found] ` <4J5R1-cH-21@gated-at.bofh.it>
[not found] ` <4J6ao-L9-21@gated-at.bofh.it>
[not found] ` <4J6jZ-Xg-11@gated-at.bofh.it>
[not found] ` <4J8vt-43Y-13@gated-at.bofh.it>
2005-09-02 6:08 ` Alex Davis
2005-09-04 12:49 ` Denis Vlasenko
2005-09-04 13:30 ` Ed Tomlinson
2005-09-04 14:49 ` Alan Cox
2005-09-04 16:44 ` Paul Misner
2005-09-04 17:07 ` Pekka Enberg
2005-09-04 17:12 ` Bas Westerbaan
2005-09-04 19:22 ` Horst von Brand
2005-09-04 19:33 ` Adrian Bunk
2005-09-04 20:13 ` Bas Westerbaan
2005-09-04 20:37 ` Dave Jones
2005-09-07 16:38 ` Bill Davidsen
2005-09-07 17:53 ` Mike Galbraith
2005-09-08 19:05 ` Bill Davidsen
2005-09-05 22:32 ` Thorild Selen
2005-09-05 23:06 ` Kyle Moffett
2005-09-02 0:39 Adrian Bunk
2005-09-02 5:33 ` Chris Wedgwood
2005-09-02 6:29 ` Nathan Scott
2005-09-02 6:40 ` Neil Brown
2005-09-13 8:05 ` Alexander Nyberg
2005-10-01 22:50 ` Adrian Bunk
2005-10-02 20:35 ` Nathan Scott
2005-09-02 6:55 ` Vladimir V. Saveliev
2005-09-02 21:58 ` Hans Reiser
2005-09-04 3:48 ` Lee Revell
2005-09-04 7:36 ` Stefan Smietanowski
2005-09-04 8:23 ` Lee Revell
2005-09-04 19:39 ` Adrian Bunk
2005-09-04 12:12 ` Guillaume Chazarain
2005-09-04 13:26 ` Sander
2005-06-08 12:35 Ian Kumlien
2005-06-08 13:14 ` Denis Vlasenko
2005-06-07 21:27 Adrian Bunk
2005-06-07 21:47 ` Alexander Nyberg
2005-06-08 10:03 ` Jörn Engel
2005-06-08 10:39 ` Denis Vlasenko
2005-06-08 11:12 ` Adrian Bunk
2005-06-08 12:13 ` Denis Vlasenko
2005-07-04 18:22 ` Adrian Bunk
2005-07-05 6:14 ` Denis Vlasenko
2005-07-05 13:46 ` Horst von Brand
2005-06-08 1:52 ` Ian Kent
2005-06-08 10:42 ` Denis Vlasenko
2005-06-08 14:28 ` raven
2005-06-08 12:00 ` Vladimir Saveliev
2005-06-10 15:18 ` Vladimir Saveliev
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=200509062004.01535.phillips@istop.com \
--to=phillips@istop.com \
--cc=ak@suse.de \
--cc=giri@lmc.cs.sunysb.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=rolandd@cisco.com \
/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.