Thomas Sailer wrote in a message to Mike Bilow:
> For sure you can go on with kiss and implement channel access
> on your own, but then the kernel won't be able to optimize the
> channel access strategy.
TS> I know, and therefore I'd like a longer term solution.
TS> But the issue is this: With the new EPP modem I'd like
TS> to be able to do ECP, and transfer data with the DMA
TS> controller. For this I need to be able to suspend
TS> my driver during DMA. To do this I need a process context.
TS> And this is infinitely more complex from the kernel space
TS> than from user space, for no big benefit.
TS> The same goes for Soundmodem. Being in userspace allows
TS> me to use for example libm to calculate filter coefficients
TS> and get a much more flexible solution basically for free.
I can't see any reason why you cannot from kernel space call into a user space
daemon. Obviously, you need to have a few tricks such as having the daemon
initiate the connection, but this is already substantially implemented for
kerneld anyway. As long as there is nothing time-critical in communication
between them, which can be handled simply by using appropriate amounts of
buffer, I don't see any technical problem with this. Synthesizing a process
context is made quite easy, since you are guaranteed periodic downcalls from
your user space daemon. If something goes wrong, just drop data on the floor;
this isn't the disk subsystem, after all.
-- Mike