Sascha Wildner [Tue, 12 May 2015 20:25:07 +0000 (22:25 +0200)]
cryptsetup(8): Remove -std=gcc89 and make getline()'s prototype visible.
Tomohiro Kusumi [Tue, 12 May 2015 01:49:38 +0000 (10:49 +0900)]
sys/vfs/tmpfs: Rename ROOTINO to TMPFS_ROOTINO
- Rename it so that the utility program can distinguish it from UFS's
ROOTINO when they need to include filesystem headers possibly in the
future.
Tomohiro Kusumi [Tue, 12 May 2015 01:10:45 +0000 (10:10 +0900)]
Revert this commit to avoid a possible complaint by compiler when
INVARIANTS is not set which leaves code 'if(cond);'.
Spotted-by: dillon
Revert "sys/vfs/tmpfs: Cleanups"
This reverts commit
215b902242b386e5a01c72d8245df7535bed0bd0.
Tomohiro Kusumi [Tue, 12 May 2015 00:58:57 +0000 (09:58 +0900)]
It only exceeds the limit by small number, so it's ok to do this without a lock.
Take performance than exact accuracy of the #.
Spotted-by: dillon
Revert "sys/vfs/tmpfs: Lock tmpfs_mount member"
This reverts commit
8c24f24ee096861731f6e5a082e22370a972701c.
Tomohiro Kusumi [Tue, 12 May 2015 00:57:44 +0000 (09:57 +0900)]
Reverting series of commits (1/2 and 2/2) since they introduce
performance degrade.
'if ((node->tn_status & TMPFS_NODE_ACCESSED) == 0) {'
can be done without inode lock and helps performance.
Spotted-by: dillon
Revert "sys/vfs/tmpfs: Make flag handling consistent [1/2]"
This reverts commit
e6db94b29aacbd288774574b1967828c8c07c013.
Tomohiro Kusumi [Tue, 12 May 2015 00:49:45 +0000 (09:49 +0900)]
Reverting series of commits (1/2 and 2/2) since they introduce
performance degrade.
'if ((node->tn_status & TMPFS_NODE_ACCESSED) == 0) {'
can be done without inode lock and helps performance.
Spotted-by: dillon
Revert "sys/vfs/tmpfs: Make flag handling consistent [2/2]"
This reverts commit
c595728587e3d04ed27f9c275bddd0eafd6427ce.
Tomohiro Kusumi [Mon, 11 May 2015 15:20:02 +0000 (00:20 +0900)]
sys/vfs/tmpfs: Bring in a macro from UFS
- Bring in ROOTINO macro from UFS whose root inode# also starts from 2.
Sascha Wildner [Mon, 11 May 2015 11:18:47 +0000 (13:18 +0200)]
ipfw3(8): Small indent adjustment.
Bill Yuan [Mon, 11 May 2015 07:32:21 +0000 (15:32 +0800)]
Fix: buf size issue in do_get/set_x
Bill Yuan [Mon, 11 May 2015 06:40:43 +0000 (14:40 +0800)]
License: Preserve previous licensor information
Matthew Dillon [Mon, 11 May 2015 02:51:18 +0000 (19:51 -0700)]
hammer - Avoid panic in particular corruption situations
This commit fixes two panics which can arise from attempting to access a
corrupted filesystem. It does not fix the issue that led to the corruption
in the first place (which we believe might have been GPU-related random
memory corruption on a particular machine). It allows the filesystem to
continue to operate so it can be spooled off and reformatted.
* Do not panic on a NULL pointer dereference if a cursor iteration
fails due to corruption.
* Do not panic during a flush on a sequence space error if the filesystem
has been forced into read-only mode (which prevents older sequence spaces
from being flushed).
Reported-by: Sephe
Tomohiro Kusumi [Sun, 10 May 2015 17:17:57 +0000 (02:17 +0900)]
sys/kern: Remove trailing ; from DO_OPS()
- The trailing ; is redundant.
Tomohiro Kusumi [Sun, 10 May 2015 16:56:43 +0000 (01:56 +0900)]
sys/kern: Fix comments
- hunk1 - Add missing MPSAFE comment.
- hunk2 - It actually acquires per-mount-token and get_mplock();
although it says get_mplock(); is /* TEMPORARY */.
See sys/sys/mount.h.
Tomohiro Kusumi [Sat, 9 May 2015 22:45:08 +0000 (07:45 +0900)]
sys/sys: Rename VFS_MPLOCK1 to VFS_MPLOCK
- The previous commit has removed VFS_MPLOCK2 macro.
- VFS_MPLOCK1 is the only VFS_MPLOCK* macro now, so strip '1'
from VFS_MPLOCK1. It's confusing with '1' since VFS_MPUNLOCK
has no '1' as well with no numbered variants.
Tomohiro Kusumi [Sat, 9 May 2015 21:28:25 +0000 (06:28 +0900)]
sys/sys: Remove VFS_MPLOCK2 macro
- Not only vfs and filesystems are NOT using this macro,
but also this macro doesn't work given that
- The local variable 'xlock_mpsafe' (which is visibly hidden
from vfs C code) is being used without initializing, while
this header doesn't provide a macro to initialze it.
(even if it did provide the purpose of VFS_MPLOCK2 isn't
very clear either).
- VFS_MPLOCK1 is the only one that works as expected and all
the syscalls actually use this. Replacing VFS_MPLOCK1 with
VFS_MPLOCK2 results compile error with -Werror=uninitialized.
error: 'xlock_mpsafe' is used uninitialized in this function
[-Werror=uninitialized]
if (xlock_mpsafe) {
Sascha Wildner [Sun, 10 May 2015 07:03:28 +0000 (09:03 +0200)]
Fix LINT64 build.
Sascha Wildner [Sun, 10 May 2015 05:07:12 +0000 (07:07 +0200)]
Clean up some more signal handlers in various places.
Sascha Wildner [Sun, 10 May 2015 03:29:17 +0000 (05:29 +0200)]
sail(6): Clean up some signal handlers.
Sascha Wildner [Sun, 10 May 2015 02:21:02 +0000 (04:21 +0200)]
Stop using 'union wait' for the status of wait*() in a few places.
It is deprecated old 4.3BSD compatibility stuff and will soon go away.
zrj [Sat, 9 May 2015 10:07:07 +0000 (13:07 +0300)]
drm: less verbose prints with DRM_DEBUG option
Old behaviour can be used with 'options DRM_DEBUG=2'
François Tigeot [Sat, 9 May 2015 08:54:30 +0000 (10:54 +0200)]
drm: Start using kcalloc()
Reducing differences with Linux and fixing a few bugs where allocated
memory was not properly zeroed.
François Tigeot [Sat, 9 May 2015 08:26:29 +0000 (10:26 +0200)]
drm: Implement kcalloc()
Sascha Wildner [Sat, 9 May 2015 00:20:46 +0000 (02:20 +0200)]
nrelease: Fix for empty DPORTS_PACKAGES.
Also fix up the previously existing 'nopkgs' target and document it.
Reported-by: Rimvydas Jasinskas <rimvydas.jasinskas@gmail.com>
Tomohiro Kusumi [Fri, 8 May 2015 11:33:07 +0000 (20:33 +0900)]
sys/vfs/tmpfs: Make flag handling consistent [2/2]
- Remove unnecessary unlock/lock after the previous commit.
Tomohiro Kusumi [Fri, 8 May 2015 11:19:09 +0000 (20:19 +0900)]
sys/vfs/tmpfs: Make flag handling consistent [1/2]
- Not taking inode lock on if-test for inode status introduces
a potential race.
- Above race is basically harmless though since if-test itself
was redundant and basically results the same with or without it.
So get rid of it and keep the |= part with inode lock.
Tomohiro Kusumi [Fri, 8 May 2015 10:48:47 +0000 (19:48 +0900)]
sys/vfs/tmpfs: Cleanups
- hunk1 - Remove unnecessary #if0/endif.
- hunk2 - Remove unnecessary goto.
François Tigeot [Fri, 8 May 2015 12:14:01 +0000 (14:14 +0200)]
agp: Remove support for pre-amd64 ALI, AMD, ATI and Nvidia chipsets
These chipsets were paired with i386-only CPUs and thus have no
chance of ever being used on DragonFly anymore.
François Tigeot [Fri, 8 May 2015 07:25:57 +0000 (08:25 +0100)]
drm/i915: Update to Linux 3.14
Changes specific to the DragonFly driver:
* Most GEM code paths are now similar to Linux, leading to increased
stability and performance.
Making this change was greatly helped by studying the OpenBSD code.
* We were previously using legacy functions to set up page table entries and
this was starting to become a serious problem on particular platforms such
as gen4 or Broadwell. As of this commit, we now use the same chip-specific
virtual functions as Linux.
* RC6 and Frame Buffer Compression power savings enabled by default, depending
on the GPU family
Changes brought by the Linux 3.11 => 3.14 driver update:
* Various bug fixes on all GPU generations, especially stability improvements
* Power consumption improvements
* Many Valleyview/Baytrail support improvements
* The giant 128MB L4 cache is now enabled when present on Haswell
* Added support for Broadwell GPUs
* HDMI 4K support
* basic support for 3D/stereo displays on HDMI
François Tigeot [Fri, 8 May 2015 06:22:24 +0000 (08:22 +0200)]
agp: Fix install_gtt_pte functions
Some chips used the wrong functions and some chip-specific install_gtt_pte
functions were buggy.
Fix both issues.
Matthew Dillon [Fri, 8 May 2015 06:17:24 +0000 (08:17 +0200)]
agp: Add Broadwell support
Sascha Wildner [Thu, 7 May 2015 16:45:41 +0000 (18:45 +0200)]
installer: Add missing dir to install.
Tomohiro Kusumi [Thu, 7 May 2015 15:33:43 +0000 (00:33 +0900)]
sys/vfs/tmpfs: Fix lock ordering
- Get locks in consistent order (dnode -> node).
Sascha Wildner [Wed, 6 May 2015 21:26:42 +0000 (23:26 +0200)]
kernel/acpi: Remove some local changes from a no-longer used file.
Tomohiro Kusumi [Wed, 6 May 2015 16:09:23 +0000 (01:09 +0900)]
sys/vfs/tmpfs: Fix typo
- Flush all vnodes on unmount(2).
Tomohiro Kusumi [Wed, 6 May 2015 16:03:09 +0000 (01:03 +0900)]
sys/vfs/tmpfs: Fix assertion
- It's always expected to be 2.
Sascha Wildner [Wed, 6 May 2015 16:40:56 +0000 (18:40 +0200)]
bsd-family-tree: Sync with FreeBSD.
* DragonFly 4.0.2 to 4.0.5
* OpenBSD 5.7
* The Design and Implementation of the FreeBSD Operating System, 2nd Ed.
Sepherosa Ziehau [Tue, 5 May 2015 14:19:36 +0000 (22:19 +0800)]
coretemp: Add 'temp' to sensor description.
Sepherosa Ziehau [Tue, 5 May 2015 14:13:22 +0000 (22:13 +0800)]
sensor: Factor out helper functions.
Sepherosa Ziehau [Tue, 5 May 2015 13:40:32 +0000 (21:40 +0800)]
memtemp: Add 'temp' to the sensor description
Sascha Wildner [Tue, 5 May 2015 17:59:36 +0000 (19:59 +0200)]
kernel/ddb: Add a DB_COMMAND_FLAG() macro to set the flag, too.
Tomohiro Kusumi [Tue, 5 May 2015 15:33:21 +0000 (00:33 +0900)]
sys/vfs/tmpfs: Lock tmpfs_mount member
- Reading tmp->tm_nodes_inuse needs lock
Tomohiro Kusumi [Tue, 5 May 2015 15:26:24 +0000 (00:26 +0900)]
sys/vfs/tmpfs: Add comment
- This function unlocks a lock acquired by a caller.
Sepherosa Ziehau [Tue, 5 May 2015 13:03:50 +0000 (21:03 +0800)]
arp: Add sysctl to avoid creation failure log
It could be annoying sometime.
Sepherosa Ziehau [Tue, 5 May 2015 13:03:12 +0000 (21:03 +0800)]
ecc/e5: Hook up error correction counting into sensors framework.
Sepherosa Ziehau [Mon, 4 May 2015 13:04:33 +0000 (21:04 +0800)]
coretemp: Enhance data of devctl notify event.
Sepherosa Ziehau [Mon, 4 May 2015 13:03:31 +0000 (21:03 +0800)]
memtemp: Mention devctl notify event
Sepherosa Ziehau [Mon, 4 May 2015 12:28:30 +0000 (20:28 +0800)]
ig_hal: Fix improper multicast setup
Obtained-from: dillon@
Tomohiro Kusumi [Mon, 4 May 2015 18:55:17 +0000 (03:55 +0900)]
sys/vfs/tmpfs: Remove #include <sys/spinlock2.h>
- tmpfs no longer uses spinlock (it did before).
Tomohiro Kusumi [Mon, 4 May 2015 18:32:47 +0000 (03:32 +0900)]
sys/vfs/tmpfs: Lock tmpfs member on ino allocation
- tmp->tm_ino++;
should be properly protected by TMPFS_LOCK/UNLOCK().
Tomohiro Kusumi [Mon, 4 May 2015 17:54:30 +0000 (02:54 +0900)]
sys/vfs/tmpfs: Change tm_ino type from 'int' to 'ino_t'
- tmpfs_mount::tm_ino needs to be ino_t.
- A wrapper function for ino allocation tmpfs_fetch_ino() and
inode itself assume it's ino_t, but not int.
François Tigeot [Mon, 4 May 2015 18:50:49 +0000 (20:50 +0200)]
agp: Remove support for pre-amd64 Intel chipsets
These chipsets were paired with i386-only CPUs and thus have no
chance of being used with current DragonFly releases.
Sascha Wildner [Mon, 4 May 2015 18:43:06 +0000 (20:43 +0200)]
kernel/ddb: Use NULL for pointers.
Tomohiro Kusumi [Mon, 4 May 2015 16:07:52 +0000 (01:07 +0900)]
sys/vfs/tmpfs: Remove trailing whitespace
- Lines changed by
66fa44e7 have trailing whitespaces for some reason.
François Tigeot [Mon, 4 May 2015 07:35:03 +0000 (09:35 +0200)]
drm: Add alloc_page()
François Tigeot [Mon, 4 May 2015 07:34:51 +0000 (09:34 +0200)]
drm: Add pci_resource_start and pci_resource_len()
François Tigeot [Mon, 4 May 2015 07:31:19 +0000 (09:31 +0200)]
drm: Add a pci id field in struct pci_dev
François Tigeot [Mon, 4 May 2015 07:30:58 +0000 (09:30 +0200)]
drm: Add io_mapping_create_wc()
François Tigeot [Mon, 4 May 2015 07:29:20 +0000 (09:29 +0200)]
drm: Add __free_page()
François Tigeot [Mon, 4 May 2015 07:25:48 +0000 (09:25 +0200)]
drm: Add sg_page_iter_dma_address()
François Tigeot [Mon, 4 May 2015 07:23:15 +0000 (09:23 +0200)]
drm: Add IS_ENABLED()
Matthew Dillon [Mon, 4 May 2015 07:21:27 +0000 (09:21 +0200)]
drm: Add scatterlist functions
Matthew Dillon [Mon, 4 May 2015 07:10:53 +0000 (09:10 +0200)]
drm: Add alloc_pages and __free_pages()
Matthew Dillon [Mon, 4 May 2015 07:08:38 +0000 (09:08 +0200)]
drm: Add pci_dma_mapping_error()
François Tigeot [Mon, 4 May 2015 07:07:27 +0000 (09:07 +0200)]
drm: Add asm/pgtable.h and asm/pgtable_types.h
François Tigeot [Mon, 4 May 2015 07:05:29 +0000 (09:05 +0200)]
drm: Fix linux/seq_file.h
François Tigeot [Mon, 4 May 2015 07:03:35 +0000 (09:03 +0200)]
drm: Add mutex_trylock() and mutex_lock_interruptible()
François Tigeot [Mon, 4 May 2015 07:01:26 +0000 (09:01 +0200)]
drm: Add a few PCI power management definitions
François Tigeot [Mon, 4 May 2015 06:57:02 +0000 (08:57 +0200)]
drm: Add a definition of mmiowb()
François Tigeot [Mon, 4 May 2015 06:56:43 +0000 (08:56 +0200)]
drm: Add __copy_from_user_inatomic()
François Tigeot [Mon, 4 May 2015 06:53:43 +0000 (08:53 +0200)]
drm: Add definitions of ECHRNG and ENOTSUPP
François Tigeot [Mon, 4 May 2015 06:51:30 +0000 (08:51 +0200)]
drm: Add asm/page.h
François Tigeot [Sun, 3 May 2015 19:25:28 +0000 (21:25 +0200)]
drm: Add pci_map_page and pci_unmap_page()
François Tigeot [Sun, 3 May 2015 19:23:41 +0000 (21:23 +0200)]
drm: Add linux/uaccess.h
François Tigeot [Sun, 3 May 2015 19:12:32 +0000 (21:12 +0200)]
drm: Really implement fault_in_multipages_writeable()
Obtained-from: FreeBSD
François Tigeot [Sun, 3 May 2015 19:11:40 +0000 (21:11 +0200)]
drm: Really implement fault_in_multipages_readable()
Obtained-from: FreeBSD
François Tigeot [Sun, 3 May 2015 19:09:48 +0000 (21:09 +0200)]
drm: linux/mm.h: Add vma_pages()
François Tigeot [Sun, 3 May 2015 20:07:51 +0000 (21:07 +0100)]
drm: Fix linux/export.h and linux/module.h
François Tigeot [Sun, 3 May 2015 20:00:36 +0000 (21:00 +0100)]
drm: Import linux/rbtree.h
Obtained-from: FreeBSD/OFED
François Tigeot [Sun, 3 May 2015 19:16:46 +0000 (20:16 +0100)]
drm: Add linux/pagemap.h
Tomohiro Kusumi [Sun, 3 May 2015 17:25:39 +0000 (02:25 +0900)]
sys/vfs/tmpfs: Fix comments
- DragonFly has 'struct tmpfs_node *dnode' for the first arg.
(it was vnode* in FreeBSD)
François Tigeot [Sun, 3 May 2015 17:31:58 +0000 (19:31 +0200)]
drm: linux/kernel.h: Add mult_frac()
Obtained-from: NetBSD
François Tigeot [Sun, 3 May 2015 15:31:24 +0000 (17:31 +0200)]
drm: linux/delay.h: Add ndelay and usleep_range()
usleep_range() Obtained from OpenBSD
Sascha Wildner [Sun, 3 May 2015 12:05:57 +0000 (14:05 +0200)]
kernel/acpi: Expose the AcpiUtConvertStringToUuid() func for the module.
Sascha Wildner [Sun, 3 May 2015 11:28:02 +0000 (13:28 +0200)]
kernel/acpi: Fix buildkernel.
Not having ACPI_DEBUG in the kernel configuration broke the build of
the acpi.ko module. Fix this by exposing AcpiUtConvertStringToUuid()'s
prototype always when the ACPICA is built as a module. The other
combinations are covered by 'files' and by the other ifdef checks.
Checking the unmodified X86_64_GENERIC must have slipped through in my
testing of
b061b83c16d6660c9e03e24186b0addc5d4115d0 somehow. :(
Reported-by: Robin Hahling <robin.hahling@gw-computing.net>
Tomohiro Kusumi [Sat, 2 May 2015 16:13:31 +0000 (01:13 +0900)]
sys/vfs/hammer: Add ascii art on pip/ip/rec relation
- Add an ascii art which describes the existing comment.
Tomohiro Kusumi [Fri, 1 May 2015 17:17:04 +0000 (02:17 +0900)]
sbin/hammer: Remove unused READAHEAD flag
- Cleanup get_buffer() by removing HAMMER_BUFINFO_READAHEAD since
this flag does nothing, but taking care of negative 'isnew' for
this flag makes things look complicated than it should.
- For the else case, 'if (isnew >= 0)' is not necessary because it's
always true from the way get_buffer() is recursively called via
get_buffer_readahead() via get_buffer().
Tomohiro Kusumi [Fri, 1 May 2015 17:05:59 +0000 (02:05 +0900)]
sbin/hammer: Add a function find_buffer()
- Make things a bit more clear by separating hash table stuff
into a function.
Sascha Wildner [Fri, 1 May 2015 21:51:50 +0000 (23:51 +0200)]
kernel/acpica: Fix building the debugger/disassembler for the kernel.
After this commit, the ACPI_DEBUG kernel option will cause the ACPICA
debugger and disassembler to be included in the kernel build. It can
then be called from DDB with 'call acpi_EnterDebugger'.
Most of this commit reverts
fe3013ebf55edd20d57e7e806c445a5a5e2e7b11.
The dmresrc2.c changes are from FreeBSD.
Tomohiro Kusumi [Fri, 1 May 2015 12:08:36 +0000 (21:08 +0900)]
sbin/hammer: Conform to style(9)
- Kernel include files (i.e. sys/*.h) come first;
normally, include <sys/types.h> OR <sys/param.h>, but not both.
- Remove #include <sys/param.h>
Tomohiro Kusumi [Thu, 30 Apr 2015 15:23:10 +0000 (00:23 +0900)]
sbin/hammer: Cleanups
- hunk 1 - The second arg gets |ed with encoded zone address.
- hunk 2 - Remove duplicated comment.
Tomohiro Kusumi [Thu, 30 Apr 2015 10:15:55 +0000 (19:15 +0900)]
sys/vfs/hammer: Add inline functions hammer_modify_buffer|volume_noundo()
- Add noundo wrappers hammer_modify_buffer|volume_noundo() similar to
the existing inline function hammer_modify_node_noundo() for better
readability.
- A pair of args (NULL, 0) indicating that it's not generating undo is
a bit unclear (and there are even comments for them).
- (The compiler doesn't actually inline hammer_modify_node_noundo()
in my environment, but these one-line wrappers are inlined)
Matthew Dillon [Thu, 30 Apr 2015 17:25:27 +0000 (10:25 -0700)]
kernel - Fix swap-full process killer
* Previously once swap became full the kernel could enter a dead zone where
no new pagouts are possible but there is just barely sufficient memory for
the system to run. That is, the minimum free page target is met but the
pageout target cannot be met.
This caused a 2+ second stall in the VM system followed by a 1 second
run (where the pageout demon stops trying for 1 second before trying again),
making the system unusable anyway.
* Replace that code. Now we start killing processes once swap becomes full
and we are unable to reach our paging target. That is, we require that the
pageout demon MUST be able to reach its paging target for free pages for
the system to run well, even if there are barely sufficient pages to run
the current steady state.
* Total anonymous (pageable) memory is still effectively RAM + SWAP. It's
just slightly less than it was before because it requires the free page
target to be met and not just the free page minimum.
Reported-by: marino
Tomohiro Kusumi [Wed, 29 Apr 2015 16:25:04 +0000 (01:25 +0900)]
sbin/hammer: Use existing macro to encode zone2 address
- Use HAMMER_ENCODE_RAW_BUFFER().
- Using this macro should always be better in the sense that it
properly masks the input offset (clears zone and volume bits).
Tomohiro Kusumi [Wed, 29 Apr 2015 16:02:23 +0000 (01:02 +0900)]
sys/vfs/hammer: Cleanup hammer.h
- It was more appropriate to have hammer_xlate_to_zone2 macro in
sys/vfs/hammer/hammer_disk.h than sys/vfs/hammer/hammer.h.
Tomohiro Kusumi [Wed, 29 Apr 2015 15:21:56 +0000 (00:21 +0900)]
sys/vfs/hammer: Cleanup ifdef/else in hammer.h [2/2]
-
872a7eee introduced hammer.h to userspace using ifdef/else switches
that needs to be cleaned up. It ended up that everything in hammer.h
was kernel stuff. Userspace needs this header only to include other
hammer headers that are already available in userspace.
- hunk 1,2 - Cleanup and conform to style(9).
- hunk 3,4 - Userspace doesn't need HAMMER_CHKSPC_XXX. These are only
internally used by big block allocator.
- hunk 5,6 - Userspace doesn't need hammer_modify_xxx(). These are only
internally used to begin i/o and generate undo for some meta data.
Tomohiro Kusumi [Wed, 29 Apr 2015 14:01:27 +0000 (23:01 +0900)]
sys/vfs/hammer: Cleanup ifdef/else in hammer.h [1/2]
-
872a7eee introduced hammer.h to userspace using ifdef/else switches
that needs to be cleaned up.
- hunk 1,3,4 - Add comments to endif.
- hunk 2 - These can be combined.
John Marino [Tue, 28 Apr 2015 21:51:37 +0000 (23:51 +0200)]
default/compilers.conf: Add two new entries
Add lang/clang36 (released) and lang/gcc6-devel (newly opened for
development) to the default compilers.conf file.
Tomohiro Kusumi [Fri, 24 Apr 2015 16:56:02 +0000 (01:56 +0900)]
sys/vfs/hammer: Add -A option to reblock|rebalance all pfs
- -A option makes certain per pfs hammer commands perform on all pfs
of the filesystem that the [filesystem] arg belongs to. Currently
hammer reblock and rebalance commands support this. It does nothing
to other commands.
- With -A option, above hammer commands use a range of 0 to 0xFFFF
for pfs id (upper 16 bits) of the cursor localization. This makes
it iterate all pfs in the filesystem.
- Above difference in localization range means btree iteration
applies to larger range of nodes in terms of pfs id, since it's
been used as a top priority key that works as a localizing factor
of pfs within the btree. There is no logical difference other than
the range is different. So performing these commands on all pfs is
as simple as changing the localization range (unless other keys are
involved as additional parameters like hammer prune does).
Tomohiro Kusumi [Fri, 24 Apr 2015 14:52:28 +0000 (23:52 +0900)]
sys/vfs/hammer: Cleanup cursor initialization code on prune
- Just make things a bit more clear (for the upcoming changes).
- The rule is the ioctl caller sets localization type to prune,
and the ioctl code adds up ip localization to initialize cursor.
Tomohiro Kusumi [Fri, 24 Apr 2015 14:40:49 +0000 (23:40 +0900)]
sys/vfs/hammer: Cleanup cursor initialization code on rebalance
- Just make things a bit more clear (for the upcoming changes).
- The rule is the ioctl caller sets localization type to rebalance,
and the ioctl code adds up ip localization to initialize cursor.