{"push_id":1382046732,"size":791,"distinct_size":67,"ref":"refs/heads/hp_x2_210","head":"da833b4856a2ad691da8b4bed1ea5d4ae86fc270","before":"b546701fe0e69355b11396513ea419f8a959af2a","commits":[{"sha":"54a164037abb4ff14fdc4b9c8c4a5971b62df6d8","author":{"name":"Sascha Wildner","email":"2eb53a053d1f5a2f754633495c284ac5805712bd@online.de"},"message":"bsd-family-tree: Sync with FreeBSD.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/54a164037abb4ff14fdc4b9c8c4a5971b62df6d8"},{"sha":"326b7fc3bbf744f4140fceba39789965494974ff","author":{"name":"François Tigeot","email":"c8a351be59b000ec01364e6892b194daa6bbf0b0@wolfpond.org"},"message":"kernel: Fix compilation","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/326b7fc3bbf744f4140fceba39789965494974ff"},{"sha":"98c1338cf32c3b9330fcc4d132e9ba2033108598","author":{"name":"Sascha Wildner","email":"2eb53a053d1f5a2f754633495c284ac5805712bd@online.de"},"message":"Fix VKERNEL64 build.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/98c1338cf32c3b9330fcc4d132e9ba2033108598"},{"sha":"92c9dfecfd83f291011459011fc712da8993aa21","author":{"name":"Sascha Wildner","email":"2eb53a053d1f5a2f754633495c284ac5805712bd@online.de"},"message":"Add a realquickkernel target, analogous to realquickworld.\n\nIt skips the recently added depend step, so it behaves like\nquickkernel did before 521f740e8971df6fdb1b63933cb534746e86bfae.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/92c9dfecfd83f291011459011fc712da8993aa21"},{"sha":"ca88a24a2812a54364b719fab5019802ec6836fc","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"kernel - Add vfs.repurpose_enable, adjust B_HASBOGUS\n\n* Add vfs.repurpose_enable, default disabled.  If this feature is turned on\n  the system will try to repurpose the VM pages underlying a buffer on\n  re-use instead of allowing the VM pages to cycle into the VM page cache.\n  Designed for high I/O-load environments.\n\n* Use the B_HASBOGUS flag to determine if a pmap_qenter() is required,\n  and devolve the case to a single call to pmap_qenter() instead of one\n  for each bogus page.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/ca88a24a2812a54364b719fab5019802ec6836fc"},{"sha":"3a06728ed5a79bd111cf4a25581d00dfcdf01e54","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"kernel - Fix TDF_EXITING bug, instrument potential live loops\n\n* Fix a TDF_EXITING bug.  lwkt_switch_return() is called to fixup\n  the 'previous' thread, meaning turning off TDF_RUNNING and handling\n  TDF_EXITING.\n\n  However, if TDF_EXITING is not set, the old thread can be used or\n  acted upon / exited on by some other cpu the instant we clear\n  TDF_RUNNING.  In this situation it is possible that the other cpu\n  will set TDF_EXITING in the small window of opportunity just before\n  we check ourselves, leading to serious thread management corruption.\n\n* The new pmap_inval*() code runs on Xinvltlb instead of as a IPIQ\n  and can easily create significant latency between the two tests,\n  whereas the old code ran as an IPIQ and could not due to the critical\n  section.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/3a06728ed5a79bd111cf4a25581d00dfcdf01e54"},{"sha":"3e169fa5bb4c11d3dde9dc56b57a1176c61c5e8c","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"kernel - Enhance indefinite wait buffer error message\n\n* Enhance the error message re: indefinite wait buffer notifications.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/3e169fa5bb4c11d3dde9dc56b57a1176c61c5e8c"},{"sha":"e405f42bc0c0adfa19d17497c3222c73accafda9","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"hammer - Try to fix improper DATA CRC error\n\n* Under heavy I/O loads HAMMER has an optimization (similar to UFS) where\n  the logical buffer is used to issue a write to the underlying device,\n  rather than copying the logical buffer to a device buffer.  This\n  optmization is earmarked by a hammer2_record.\n\n* If the logical buffer is discarded just after it is written, and then\n  re-read, hammer may go through a path which calls\n  hammer_ip_resolve_data().  This code failed to check whether the record\n  was still in-progress, and in-fact the write to the device may not have\n  even been initiated yet, and there could also have been a device buffer\n  alias in the buffer cache for the device for the offset.\n\n  This caused the followup read to access the wrong data, causing HAMMER\n  to report a DATA CRC error.  The actual media receives the correct data\n  eventually and a umount/remount would show an uncorrupted file.\n\n* Try to fix the problem by calling hammer_io_direct_wait() on the record\n  in this path to wait for the operation to complete (and also to\n  invalidate the related device buffer) before trying to re-read the block\n  from the media.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/e405f42bc0c0adfa19d17497c3222c73accafda9"},{"sha":"237baba39c2144701eb483e7ec726a8a1aafa215","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"hammer - remove commented out code, move a biodone()\n\n* Remove commented-out code which is no longer applicable.\n\n* Move the biodone() call in hammer_io_direct_write_complete() to after\n  the token-release, reducing stacking of tokens in biodone().","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/237baba39c2144701eb483e7ec726a8a1aafa215"},{"sha":"1a5c7e0f9aa6bc9a632a92b6b832cfe676746f7f","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"kernel - Refactor Xinvltlb a little, turn off the idle-thread invltlb opt\n\n* Turn off the idle-thread invltlb optimization.  This feature can be\n  turned on with a sysctl (default-off) machdep.optimized_invltlb.  It\n  will be turned on by default when we've life-tested that it works\n  properly.\n\n* Remove excess critical sections and interrupt disablements.  All entries\n  into smp_invlpg() now occur with interrupts already disabled and the\n  thread already in a critical section.  This also defers critical-section\n  1->0 transition handling away from smp_invlpg() and into its caller.\n\n* Refactor the Xinvltlb APIs a bit.  Have Xinvltlb enter the critical\n  section (it didn't before).  Remove the critical section from\n  smp_inval_intr().  The critical section is now handled by the assembly,\n  and by any other callers.\n\n* Add additional tsc-based loop/counter debugging to try to catch problems.\n\n* Move inner-loop handling of smp_invltlb_mask to act on invltlbs a little\n  faster.\n\n* Disable interrupts a little later inside pmap_inval_smp() and\n  pmap_inval_smp_cmpset().","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/1a5c7e0f9aa6bc9a632a92b6b832cfe676746f7f"},{"sha":"743146ae2a6000d439d5977d490403d7fdf54979","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"kernel - Fix atomic op comparison\n\n* The sequence was testing a signed integer and then testing the same\n  variable using atomic_fetchadd_int(&var, 0).  Unfortunately, the\n  atomic-op returns an unsigned value so the result is that when the\n  buffer count was exhausted, the program would hard-loop without\n  calling tsleep.\n\n* Fixed by casting the atomic op.\n\n* Should fix the hardlock issue once and for all.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/743146ae2a6000d439d5977d490403d7fdf54979"},{"sha":"b976e2c27a272fede34b02d1900430d3d5ccd624","author":{"name":"zrj","email":"bd63f62667db68e8fd5e505f0e63b4356b416a8f@gmail.com"},"message":"sys: Extract CPUMASK macros to new <machine/cpumask.h>\n\nThere are plenty enough CPUMASK macros already for them to have their own header.\nSo far only userspace users are powerd(8), usched(8) and kern_usched.c(VKERNEL64).\nAfter recent change to expose kernel internal CPUMASK macros those got available\nfor userland codes even through <time.h> header. It is better to avoid that.\nAlso this reduces POSIX namespace pollution and keeps cpu/types.h header slim.\n\nFor now leave CPUMASK_ELEMENTS (not sure about ASSYM() macro handling the _ prefix)\nand cpumask_t typedef (forward decl of struct cpumask would be better in prototypes).","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/b976e2c27a272fede34b02d1900430d3d5ccd624"},{"sha":"ce8b4ec1002660c86858e2e6b18c6ea6cdb5c879","author":{"name":"zrj","email":"bd63f62667db68e8fd5e505f0e63b4356b416a8f@gmail.com"},"message":"cpumask.h: Turn CPUMASK_ELEMENTS as implementation defined.\n\nNo functional change intended.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/ce8b4ec1002660c86858e2e6b18c6ea6cdb5c879"},{"sha":"7d4c3696d4daa24271e0732a84bb081edb0bb533","author":{"name":"zrj","email":"bd63f62667db68e8fd5e505f0e63b4356b416a8f@gmail.com"},"message":"cpumask.9: Add short manpage.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/7d4c3696d4daa24271e0732a84bb081edb0bb533"},{"sha":"b8674cff3d2808cded6daa41e6a9df70cf5732fd","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"drm - Fix subtle plane masking bug.\n\n* Index needs to be 1 << index.\n\nReported-by: davshao\nFound-by: Matt Roper - https://patchwork.kernel.org/patch/7889051/","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/b8674cff3d2808cded6daa41e6a9df70cf5732fd"},{"sha":"3dda54c60cbb0c8677ed2e76c97a5e0c9ac90e38","author":{"name":"Sascha Wildner","email":"2eb53a053d1f5a2f754633495c284ac5805712bd@online.de"},"message":"sysconf.3: Document _SC_PAGE_SIZE and _SC_PHYS_PAGES.\n\nTaken-from:    FreeBSD\nSubmitted-by:  Sevan Janiyan\nDragonfly-bug: <https://bugs.dragonflybsd.org/issues/2929>","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/3dda54c60cbb0c8677ed2e76c97a5e0c9ac90e38"},{"sha":"ae18e11d61f5cb1b3d4f1ecc8c70eff9bdd31df0","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"kernel - cli interlock with critcount in interrupt assembly\n\n* Disable interrupts when decrementing the critical section count\n  and gd_intr_nesting_level, just prior to jumping into doreti.\n  This prevents a stacking interrupt from occurring in this roughly\n  10-instruction window.\n\n* While limited stacking is not really a problem, this closes a very\n  small and unlikely window where multiple device interrupts could\n  stack excessively and run the kernel thread out of stack space.\n  (unlikely that it has ever happened in real life, but becoming more\n  likely as some modern devices are capable of much higher interrupt\n  rates).","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/ae18e11d61f5cb1b3d4f1ecc8c70eff9bdd31df0"},{"sha":"d0f59917b31c9ce70fc3a52aa387163871f88f4b","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"kernel - Add some more options for pmap_qremove*()\n\n* Add pmap_qremove_quick() and pmap_qremove_noinval(), allowing pmap\n  entries to be removed without invalidation under carefully managed\n  circumstances by other subsystems.\n\n* Redo the virtual kernel a little to work the same as the real kernel\n  when entering new pmap entries.  We cannot assume that no invalidation\n  is needed when the prior contents of the pte is 0, because there are\n  several ways it could have become 0 without a prior invalidation.\n\n  Also use an atomic op to clear the entry.","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/d0f59917b31c9ce70fc3a52aa387163871f88f4b"},{"sha":"2d1b280fd7290751e4da3171a396ae301829790f","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"kernel - Cut buffer cache related pmap invalidations in half\n\n* Do not bother to invalidate the TLB when tearing down a buffer\n  cache buffer.  On the flip side, always invalidate the TLB\n  (the page range in question) when entering pages into a buffer\n  cache buffer.  Only applicable to normal VMIO buffers.\n\n* Significantly improves buffer cache / filesystem performance with\n  no real risk.\n\n* Significantly improves performance for tmpfs teardowns on unmount\n  (which typically have to tear-down a lot of buffer cache buffers).","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/2d1b280fd7290751e4da3171a396ae301829790f"},{"sha":"fda4c5f3ee0a939d4eec5cbb125d0944b4529cac","author":{"name":"Matthew Dillon","email":"0d55756cc9a19b899def6eeffb25bbe2ecc5ede3@apollo.backplane.com"},"message":"kernel - Close a few SMP holes\n\n* Don't trust the compiler when loading refs in cache_zap().  Make sure\n  it doesn't reorder or re-use the memory reference.\n\n* In cache_nlookup() and cache_nlookup_maybe_shared(), do a full re-test\n  of the namecache element after locking instead of a partial re-test.\n\n* Lock the namecache record in two situations where we need to set a\n  flag.  Almost all other flag cases require similar locking.  This fixes\n  a potential SMP race in a very thin window during mounting.\n\n* Fix unmount / access races in sys_vquotactl() and, more importantly, in\n  sys_mount().  We were disposing of the namecache record after extracting\n  the mount pointer, then using the mount pointer.  This could race an\n  unmount and result in a corrupt mount pointer.\n\n  Change the code to dispose of the namecache record after we finish using\n  the mount point.  This is somewhat more complex then I'd like, but it\n  is important to unlock the namecache record across the potentially\n  blocking operation to prevent a lock chain from propagating upwards\n  towards the root.\n\n* Enhanced debugging for the namecache teardown case when nc_refs changes\n  unexpectedly.\n\n* Remove some dead code (cache_purgevfs()).","distinct":false,"url":"https://api.github.com/repos/ivadasz/DragonFlyBSD/commits/fda4c5f3ee0a939d4eec5cbb125d0944b4529cac"}]}
{"actor":{"display_login":"ivadasz"}}