GitHub PushEvent at 2014-06-04 12:41:29
Repository: spl
Actor: dweeezil
Payload: {"shas":[["1538f4b6e3cc08c334f58b0025aa7de1d6c97e1a","1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","Linux 3.15 compat: NICE_TO_PRIO and PRIO_TO_NICE\n\nThese macro's were exposed to make them available to other\nparts of the kernel and modules.\n\nReferences:\n  torvalds/linux@6b6350f\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nIssue #355","Chunwei Chen",true],["ad3412efd7cc2debb0f9f354d3f5e105a99d97e1","1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","Linux 3.15: vfs_rename() added a flags argument\n\nDetect the updated vfs_rename() interface and call it with an\nextra flags argument.\n\nReferences:\n  torvalds/linux@520c8b1\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nIssue #355","Chunwei Chen",true],["a073aeb0604b7d410be58135fb9d5c43671af263","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Add KMC_SLAB cache type\n\nFor small objects the Linux slab allocator has several advantages\nover its counterpart in the SPL.  These include:\n\n1) It is more memory-efficient and packs objects more tightly.\n2) It is continually tuned to maximize performance.\n\nTherefore it makes sense to layer the SPLs slab allocator on top\nof the Linux slab allocator.  This allows us to leverage the\nadvantages above while preserving the Illumos semantics we depend\non.  However, there are some things we need to be careful of:\n\n1) The Linux slab allocator was never designed to work well with\n   large objects.  Because the SPL slab must still handle this use\n   case a cut off limit was added to transition from Linux slab\n   backed objects to kmem or vmem backed slabs.\n\n   spl_kmem_cache_slab_limit - Objects less than or equal to this\n   size in bytes will be backed by the Linux slab.  By default\n   this value is zero which disables the Linux slab functionality.\n   Reasonable values for this cut off limit are in the range of\n   4096-16386 bytes.\n\n   spl_kmem_cache_kmem_limit - Objects less than or equal to this\n   size in bytes will be backed by a kmem slab.  Objects over this\n   size will be vmem backed instead.  This value defaults to\n   1/8 a page, or 512 bytes on an x86_64 architecture.\n\n2) Be aware that using the Linux slab may inadvertently introduce\n   new deadlocks.  Care has been taken previously to ensure that\n   all allocations which occur in the write path use GFP_NOIO.\n   However, there may be internal allocations performed in the\n   Linux slab which do not honor these flags.  If this is the case\n   a deadlock may occur.\n\nThe path forward is definitely to start relying on the Linux slab.\nBut for that to happen we need to start building confidence that\nthere aren't any unexpected surprises lurking for us.  And ideally\nneed to move completely away from using the SPLs slab for large\nmemory allocations.  This patch is a first step.\n\nNOTES:\n1) The KMC_NOMAGAZINE flag was leveraged to support the Linux slab\n   backed caches but it is not supported for kmem/vmem backed caches.\n\n2) Regardless of the spl_kmem_cache_*_limit settings a cache may\n   be explicitly set to a given type by passed the KMC_KMEM,\n   KMC_VMEM, or KMC_SLAB flags during cache creation.\n\n3) The constructors, destructors, and reclaim callbacks are all\n   functional and will be called regardless of the cache type.\n\n4) KMC_SLAB caches will not appear in /proc/spl/kmem/slab due to\n   the issues involved in presenting correct object accounting.\n   Instead they will appear in /proc/slabinfo under the same names.\n\n5) Several kmem SPLAT tests needed to be fixed because they relied\n   incorrectly on internal kmem slab accounting.  With the updated\n   test cases all the SPLAT tests pass as expected.\n\n6) An autoconf test was added to ensure that the __GFP_COMP flag\n   was correctly added to the default flags used when allocating\n   a slab.  This is required to ensure all pages in higher order\n   slabs are properly refcounted, see ae16ed9.\n\n7) When using the SLUB allocator there is no need to attempt to\n   set the __GFP_COMP flag.  This has been the default behavior\n   for the SLUB since Linux 2.6.25.\n\n8) When using the SLUB it may be desirable to set the slub_nomerge\n   kernel parameter to prevent caches from being merged.\n\nOriginal-patch-by: DHE <git@dehacked.net>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Prakash Surya <surya1@llnl.gov>\nSigned-off-by: Tim Chase <tim@chase2k.com>\nSigned-off-by: DHE <git@dehacked.net>\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>\nCloses #356","Brian Behlendorf",true],["376dc35e228498da7703e7ca4c2b75d16763c23b","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Add spl_kmem_cache_reclaim module option\n\nThe correct behavior for all registered shrinkers is to return the\nnumber of objects in their cache.  In theory this allows the Linux\nVM to balance memory reclaim across all registered caches.\n\nIn commit b9b3715 this behavior was disabled in favor of returning\n-1 which notifies the VM that no additional objects are available\nfor reclaim.  This was done as a workaround to resolve thrashing\nin shrink_slabs() which could occur when memory was low and numerous\ncore where in reclaim.  Unfortunately, this has been observed to\nincrease the likelihood of OOM events when SPL slab consumers are\nresponsible for consuming the majority of memory.\n\nTherefore, this patch makes this behavior tunable.  Setting the\nspl_kmem_cache_reclaim module option to 0x1 will result in the\nshrinker only being called once.  This is the default behavior.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Prakash Surya <surya1@llnl.gov>\nCloses #358","Brian Behlendorf",true],["c4f38ddd8003ef51e7f4e92607b1838216650730","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Restrict release number to META version\n\nWhen creating packages in a git repository the release number\ncan be automatically set by 'git describe'.  This normally works\nwell but if your repository has newer tags which match the form\nNAME-VERSION* the release may be incorrectly calculated.  To\nprevent this the match patten has been restricted to NAME-VERSION.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Brian Behlendorf",true],["4cdcdbff636763fbdae72e2f7e1f9e7971649cca","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Fix DKMS package upgrade and packager\n\nRunning 'yum upgrade spl-dkms' package could appear to work properly\nand still leave you with no spl modules installed.  This will occur\nwhen only the spl release, and not the version, are incremented.\nThis may be the case for a fast moving spl-testing repository.\n\nDuring the upgrade process DKMS will realize that spl-x.y.z is already\ninstalled and remove it.  DKMS then correctly builds the new modules\nfor spl-x.y.z.  However, as a final step when the old spl-x.y.z-r is\nremoved the %preun script runs and removes the newly build modules.\nTo handle this case the %preun script has been updated to only run\nwhen the installed version exactly matches the full spec file version.\n\nThis change also updated ChangeLog section based on the DKMS\nreference spec file.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Brian Behlendorf",true],["a23960c9ba21b50bfdc7013b6d5228ef98251564","5ee0edb9e2229c0838f1959779f1949031de0123@chase2k.com","Add functions and macros as used upstream.\n\nAdded highbit64() and howmany() which are used in recent upstream code.","Tim Chase",true]],"size":7,"ref":"refs/heads/illumos-delphix","head":"a23960c9ba21b50bfdc7013b6d5228ef98251564"}