Commits on Jun 1, 2011
  1. prep for 1.0-pre35 tag

    garlick committed Jun 1, 2011
Commits on May 31, 2011
  1. Set open/create iounit to 0

    Returning st_blksize was resulting in lots of 4K I/O requests.
    Fine for disks, not too good for copying data over the network.
    Returning zero causes v9fs to use msize-P9_IOHDRSZ.
    garlick committed May 31, 2011
Commits on May 28, 2011
  1. Prep for 1.0-pre33 tag

    garlick committed May 28, 2011
Commits on May 27, 2011
  1. Fix deadlock when handling a P9_TFLUSH (issue 44)

    This was a regression introduced recently with the threadpool
    reorganization.  A lock was not dropped on successful flushing of
    a request, resulting in server deadlock.  Added regression test
    kern/t35 for this.
    Also added a test user/t15 for another tflush problem (issue 45)
    garlick committed May 27, 2011
Commits on May 25, 2011
  1. Prep for 1.0-pre32 tag.

    garlick committed May 25, 2011
  2. Rework stats available for monitoring.

    Drop wthreads file.
    Change tpools file so it includes refcount and op counts for every .L
    request type.
    garlick committed May 25, 2011
  3. Fix bugs where tpool lock could be taken twice.

    Threadpool lock could be taken twice when manipulating the
    request queue 1) when dropping a connection and 2) when
    handling a P9_TFLUSH.
    garlick committed May 25, 2011
  4. Clean up kernel tests

    Fix a compile warning introduced last night in kconjoin.c.
    Require a .exp file for each test and add them for t32, t33.
    Put postmark and dbench output in separate files.
    garlick committed May 25, 2011
Commits on May 24, 2011
  1. Prep for 1.0-pre31 tag

    garlick committed May 24, 2011
  2. Make threadmode=aname the default.

    Remove the --threadmode option and do threadpool-per-aname
    unconditionally.  Otherwise, test coverage is a problem and
    monitoring tools can't leverage the different way stats are
    collected (currently) in the two models.
    garlick committed May 24, 2011
  3. Fix ignored open flags (issue 43)

    diod_lcreate was calling creat(2) which hardwires flags to
    O_CREAT|O_WRONLY|O_TRUNC.  Call open(2) instead.
    garlick committed May 24, 2011
  4. Fix fsync returning EBADF on directory (issue 42)

    Fsync on a directory was failing because the fid's fd was used
    unconditionally.  Use fsync(dirfd(f->dir)) on directories.
    Added regression test kern/t34.
    garlick committed May 24, 2011
Commits on May 23, 2011
  1. Change some libnpclient convinence functions

    Drop npc_pread_all, npc_pwrite_all, npc_read_all, npc_write_all.
    And npc_get (read whole file) and npc_put (write whole file).
    garlick committed May 23, 2011
Commits on May 21, 2011
  1. Add -U,--sqaushuser USER option

    garlick committed May 21, 2011
  2. Add dbench and postmark tests

    garlick committed May 20, 2011
Commits on May 20, 2011
  1. Added fstest to test suite.

    garlick committed May 20, 2011
Commits on May 19, 2011
  1. Prep for 1.0-pre30 tag

    garlick committed May 19, 2011
  2. Add threadmode=aname option (issue 26)

    By default, the server starts one threadpool as before.  However,
    if diod is started with --threadmode=aname, then a new threadpool
    is started up for each unique aname (except 'ctl' which is handled
    with the default threadpool)
    This solves issue 26, where a down NFS server mounted with -ohard
    that is being forwarded through diod could hang the threadpool,
    preventing access to other file systems.
    Thread pools, with private request queues, are created/selected at
    attach time and a reference to the thread pool is attached to the fid.
    Cloned fids inherit a reference back to the thread pool selected at
    attach time.  Thread pools are destroyed when their reference count
    goes to zero (all fids are clunked = file system is unmounted).
    garlick committed May 19, 2011
  3. Add default diodcat options

     -h locahost
     -a ctl
    So it can be run as a "server alive" debugging tool with minimal
    command line pain, per suggestion from Jim Silva.
    garlick committed May 19, 2011
Commits on May 18, 2011
  1. More groundwork for thread scheduling

    Create a new data structure, Nptpool for a thread pool, and give
    the Npsrv a linked listed of them.  At this point create only one,
    but change all points of access so they can work with multiple tpools.
    garlick committed May 18, 2011
  2. Associate aname with each request for thread scheduling.

    Create fid->aname and look up each request's fid before enqueueing
    for the server.  This allows us to, for example, create a separate
    queue and worker thread pool for each forwarded file system, so when
    one gets stuck the entire server doesn't deadlock.
    garlick committed May 17, 2011
Commits on May 17, 2011