[lkml]   [2006]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[take4 0/4] kevent: Generic event handling mechanism.

    Generic event handling mechanism.

    I send this patchset for comments and review, it still contains AIO and
    aio_sendfile() implementation on top of get_block() abstraction, which was
    decided to postpone for a while (it is simpler right now to generate patchset as a whole,
    when kevent will be ready for merge, I will generate patchset without AIO stuff).
    It does not contain mapped buffer implementation, since it's design is not 100%
    completed, I will present that implementation in the third patchset.

    Changes from 'take3' patchset:
    * removed serializing mutex from kevent_user_wait()
    * moved storage list processing to RCU
    * removed lockdep screaming - all storage locks are initialized in the same function, so it was learned
    to differentiate between various cases
    * remove kevent from storage if is marked as broken after callback
    * fixed a typo in mmaped buffer implementation which would end up in wrong index calcualtion

    Changes from 'take2' patchset:
    * split kevent_finish_user() to locked and unlocked variants
    * do not use KEVENT_STAT ifdefs, use inline functions instead
    * use array of callbacks of each type instead of each kevent callback initialization
    * changed name of ukevent guarding lock
    * use only one kevent lock in kevent_user for all hash buckets instead of per-bucket locks
    * do not use kevent_user_ctl structure instead provide needed arguments as syscall parameters
    * various indent cleanups
    * added optimisation, which is aimed to help when a lot of kevents are being copied from userspace
    * mapped buffer (initial) implementation (no userspace yet)

    Changes from 'take1' patchset:
    - rebased against 2.6.18-git tree
    - removed ioctl controlling
    - added new syscall kevent_get_events(int fd, unsigned int min_nr, unsigned int max_nr,
    unsigned int timeout, void __user *buf, unsigned flags)
    - use old syscall kevent_ctl for creation/removing, modification and initial kevent
    - use mutuxes instead of semaphores
    - added file descriptor check and return error if provided descriptor does not match
    kevent file operations
    - various indent fixes
    - removed aio_sendfile() declarations.

    Thank you.

    Signed-off-by: Evgeniy Polyakov <>

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-08-05 14:41    [W:0.021 / U:74.616 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site