On Sun, 1 Apr 2007, Robert Watson wrote:

The attached patch moves file descriptor locks from being a custom mutex/sleep lock implemented using msleep() to an sx lock. With the new sx lock optimizations in place, this is now sensible, avoiding both a custom lock type and significantly improving performance. Kris has reported 2x-4x improvement in transactions/sec with MySQL using this patch, as it greatly reduces the cost of lock contention during file descriptor lookup for threaded applications, and also moves to shared locking to avoid exclusive acquisition for read-only operations (the vast majority in most workloads). Patch is below, but you can also download from:

 http://www.watson.org/~robert/freebsd/netperf/20070401a-filedesc-sx.diff

I'm currently waiting for the sx lock changes to settle for a few days before committing, so will plan to commit this around Wednesday/Thursday of this week (unless serious problems arise).

Andrzej has pointed out that shortly after I posted the patch, it came into conflict with changes in VFS. I've updated the patch and posted it at:

  http://www.watson.org/~robert/freebsd/netperf/20070403-filedesc-sx.diff

Thanks,

Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to