Re: Read from file fails

From: Libor Vanek
Date: Wed May 05 2004 - 06:24:13 EST


> >>>OK - how can I "notify" userspace process? Signals are "weak" - I need
> >>>to send some data (filename etc.) to process. One solution is "on this
> >>>signal call this syscall and result of this syscall will be data you
> >>>need" - but I'd prefer to handle this in one "action".
> >>
> >>My first thoughts are to make it a blocking call.
> >
> >You mean like:
> >- send signal to user-space process
> >- wait until user-space process pick ups data (filename etc.), creates
> >copy of file (or whatever) and calls another system call that he's finished
> >- let kernel to continue syscall I blocked
> >?
>
> No, more like:
> - user-space process calls syscall, which blocks.
> - kernel captures a file write event, puts the info in some kind of
> queue, wakes up the user-space process and then waits for some kind of
> acknowledgement to be returned so that it may continue.
> - user-space process wakes up, the syscall completes, and passes a
> filename etc. to user-space. Copies the file, and calls a syscall to
> signify "hey, I'm done with that file". This syscall wakes up the kernel
> stuff that was waiting for this acknowledgement.
> - file write event continues
> - repeat from start

OK - I'm thinking of using semaphores to "block" system call - is there something why this is not a good idea?

Thanks,
Libor

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