From: Tejun H. <tj...@ke...> - 2008-11-13 06:26:15
|
Hello, Miklos. Miklos Szeredi wrote: > 0006-FUSE-implement-unsolicited-notification.patch > 0007-FUSE-implement-poll-support.patch > > This would be nice, but... I don't really like the fact that it uses > the file handle. Could we have a separate "poll handle" that is > returned in the POLL reply? Eh... I replied too early for this. I'm now trying to convert it to its own handle but there is a rather serious problem. It's usually much easier to have the entity to be waken up registered before calling ->poll so that ->poll can use the same notification path from ->poll ans for later. However, if we allocate poll handle from ->poll and tell it to kernel via reply, it creates two problem. 1. the entity which is to be waken up can't be registered prior to calling ->poll as there's nothing to identify it, 2. the interval from reply write and in-kernel polled entity registration must be made atomic so that no notification can come through inbetween. #1 means that ->poll can't call the same notification path from ->poll itself and #2 means that there needs to be special provision from dev.c::fuse_dev_write() to file.c::fuse_file_poll() so that atomicity can be guaranteed. Both of which can be done but I'm not really sure whether using a separate handle would be a good idea even with the involved cost. Why do you think using separate poll handle would be better? And do you still think the overhead is justifiable? Thanks. -- tejun |