Sascha Wildner [Wed, 22 Oct 2008 20:15:55 +0000 (20:15 +0000)]
Add a periodic(8) script to run 'hammer cleanup' (snapshot, prune
and reblock all HAMMER filesystems) on a nightly basis. The exact
behavior (period, retention and run time) can be configured by
tweaking <filesystem>/snapshots/config as described in hammer(5).
Sepherosa Ziehau [Wed, 22 Oct 2008 14:24:24 +0000 (14:24 +0000)]
Add 5906/5906M support. Based on my old patch with some additional work from
FreeBSD.
Tested-by: Petr Janda <elekktretterr@exemail.com.au>
Matthew Dillon [Wed, 22 Oct 2008 01:43:51 +0000 (01:43 +0000)]
Raise the kmalloc limit for the M_HAMMER_INO pool based on desiredvnodes
to try to avoid kernel memory exhaustion panics.
Reported-by: Matthias Schmidt <matthias@dragonflybsd.org>, and others.
Matthew Dillon [Wed, 22 Oct 2008 01:42:17 +0000 (01:42 +0000)]
Add kmalloc_raise_limit() - allow a subsystem to raise the allocation
limit for a kmalloc pool.
Sascha Wildner [Tue, 21 Oct 2008 14:35:33 +0000 (14:35 +0000)]
Remove trailing whitespace.
Sascha Wildner [Tue, 21 Oct 2008 14:02:48 +0000 (14:02 +0000)]
* Remove 'exit 1' so the script continues running.
* Add swap to fstab.
* Remove dntpd setup because the same stuff is in our default dntpd.conf
already.
Sepherosa Ziehau [Tue, 21 Oct 2008 13:51:01 +0000 (13:51 +0000)]
Add tunable net.inet.ip.mpsafe to register IP as MPSAFE netisr.
Multicast/IPSEC still need BGL.
Sepherosa Ziehau [Tue, 21 Oct 2008 12:31:01 +0000 (12:31 +0000)]
- Move RX filter configuration from re_init() into re_setmulti()
- IFF_BROADCAST will never be set/cleared
- Fix SIOCSIFFLAGS support; it was really annoying that each time when I ran
tcpdump, the NIC reinitialized itself.
Sepherosa Ziehau [Mon, 20 Oct 2008 13:16:58 +0000 (13:16 +0000)]
Unbreak UP building
Sepherosa Ziehau [Mon, 20 Oct 2008 12:22:24 +0000 (12:22 +0000)]
In route_init(), call netmsg_service_port_init(); mainly to register route
thread's msgport for netmsg_service_sync(), since route threads also do
network output during arp input processing.
Sascha Wildner [Mon, 20 Oct 2008 07:35:08 +0000 (07:35 +0000)]
Fix typo.
Sascha Wildner [Sun, 19 Oct 2008 20:15:58 +0000 (20:15 +0000)]
Sync libc/stdtime and zdump(8)/zic(8) with tzcode2008h from elsie.
There shouldn't be any user visible changes. Some bugs are fixed, among
them an issue with Python's mktime() when TZ wasn't set (reported by
Aran Cox).
Another thing is that this code should behave nicely on architectures with
a 64 bits wide time_t.
Sascha Wildner [Sun, 19 Oct 2008 11:31:05 +0000 (11:31 +0000)]
Regenerate the pciconf(8) database from the following files:
Hart: Jan 22, 2008 (version 671)
Boemler: Oct 19, 2008
Mares: Oct 17, 2008
Sepherosa Ziehau [Sun, 19 Oct 2008 09:13:58 +0000 (09:13 +0000)]
Add pcie_set_max_readrq() to avoid code duplication between various network
device drivers.
Sepherosa Ziehau [Sun, 19 Oct 2008 08:39:55 +0000 (08:39 +0000)]
Add m_devpad() to avoid code duplication in various network device drivers
Hasso Tepper [Sun, 19 Oct 2008 08:16:20 +0000 (08:16 +0000)]
Update sensorsd(8) to the latest code.
Obtained-from: OpenBSD
Sepherosa Ziehau [Sun, 19 Oct 2008 08:11:35 +0000 (08:11 +0000)]
Reduce RX coal ticks to 100us (favors performance a little bit)
Sepherosa Ziehau [Sun, 19 Oct 2008 06:00:24 +0000 (06:00 +0000)]
- In re_stop(), call re_reset(), which is supposed to stop TX/RX engines.
- In re_reset(), don't touch 0x82 (a magic CSR), which seems to be 8110/8169
specific. Write 1 to it on attach path.
According-to: RealTek r8169-6.007.00
- For certain chips (looks like all MAC2 chips), RE_CMD_RESET will not stop
TX/RX engines, a seperate command (RE_CMD_STOPREQ) must be issued before
RE_CMD_RESET.
According-to: RealTek r8168-8.008.00
Sepherosa Ziehau [Sun, 19 Oct 2008 04:40:16 +0000 (04:40 +0000)]
- Pack boolean fields into re_softc.re_flags
- Nuke some unused fields in re_softc
# This file should have been committed along with if_re.c rev1.93
Sepherosa Ziehau [Sun, 19 Oct 2008 04:38:40 +0000 (04:38 +0000)]
- Pack boolean fields into re_softc.re_flags
- Nuke some unused fields in re_softc
Sepherosa Ziehau [Sun, 19 Oct 2008 03:25:31 +0000 (03:25 +0000)]
Instead of using lwkt_migratecpu(), use ifnet threads to do dom_rtattach()
Sepherosa Ziehau [Sun, 19 Oct 2008 03:17:52 +0000 (03:17 +0000)]
- Move PCIe chip detection into re_probe()
- Panic if the passed in "max read request size" exceeds limit
Sepherosa Ziehau [Sat, 18 Oct 2008 14:56:31 +0000 (14:56 +0000)]
Try recollecting TX descriptors when we are short of them in re_start()
Sepherosa Ziehau [Sat, 18 Oct 2008 11:49:34 +0000 (11:49 +0000)]
There are 4 fields in re_hwrev
Sepherosa Ziehau [Sat, 18 Oct 2008 11:36:37 +0000 (11:36 +0000)]
Reduce the threshold that control when "cut through mode" should be applied;
mainly to fix jumbo frame RX support.
Sepherosa Ziehau [Sat, 18 Oct 2008 11:26:52 +0000 (11:26 +0000)]
- Don't claim 7422 MTU size is support by various 8111/8169 chips (PCI devices);
6144 MTU size works reliably.
Set MTU above 6144 (6 * 1024) on these chips and do following test:
netperf -H host -l 30 -t UDP_STREAM -- -m (mtu-28)
All kinds of wiredness will pop up on the test box.
- Set max supported MTU to 9216 for 8168D.
Obtained-from: Realtek r8168-8.008.00
- Set max supported MTU to 6144 for non-8168D GigE chips.
- Cleanup jumbo frame/MTU size related macros.
# As usual, 8169(with 88E1000 PHY) does not seem to work well with any jumbo
# frame size
Sepherosa Ziehau [Sat, 18 Oct 2008 04:44:41 +0000 (04:44 +0000)]
Fix hardware vlan tagging support by setting vlan information on all TX
descriptors for multi-segment packets.
# Even with this fix in place, 8169 still does not work reliably with vlan.
# Certain packets are never seen on the wire; maybe caused by the trailing
# ether frame CRC generated by the hardware?
Sepherosa Ziehau [Sat, 18 Oct 2008 03:00:29 +0000 (03:00 +0000)]
Fix re_ioctl SIOCSIFCAP support, so that VLAN_HWTAGGING and VLAN_MTU could
be turned off.
Matthew Dillon [Sat, 18 Oct 2008 01:17:53 +0000 (01:17 +0000)]
Try to do a better job aborting active requests when a usb mass storage
device is pulled.
Matthew Dillon [Sat, 18 Oct 2008 01:15:33 +0000 (01:15 +0000)]
Allow an alignment default of 0 to be treated as 1.
Obtained-from: FreeBSD
Matthew Dillon [Sat, 18 Oct 2008 01:13:54 +0000 (01:13 +0000)]
Add vfs.nfs.flush_on_hlink and default to off.
Sepherosa Ziehau [Fri, 17 Oct 2008 14:12:23 +0000 (14:12 +0000)]
Correct jumbo frame support for 8168C/CP/D.
These newer chips use ancient design, which does _not_ support gathering RX.
An even worse aspect of the new chips' design is that it does not compat
with old ones: the buffer length field in the RX descriptor seems to be
completely ignored by the hardware. This means host memory will be trashed
by hardware if driver uses gathering RX.
Allocate a jumbo buffer pool for these chips and configure "max RX packet
size" register according to MTU.
Sascha Wildner [Fri, 17 Oct 2008 12:41:38 +0000 (12:41 +0000)]
Fix some typos.
Found-by: LanguageTool
Sascha Wildner [Fri, 17 Oct 2008 11:30:24 +0000 (11:30 +0000)]
Change 'then' to 'than' in comparisons.
Found-by: LanguageTool
Sascha Wildner [Fri, 17 Oct 2008 07:52:56 +0000 (07:52 +0000)]
Use standard markup for one or more files.
Sascha Wildner [Thu, 16 Oct 2008 23:08:30 +0000 (23:08 +0000)]
Change 'then' to 'than' in comparisons.
Found-by: LanguageTool
Matthew Dillon [Thu, 16 Oct 2008 17:24:16 +0000 (17:24 +0000)]
Add KQUEUE support to HAMMER.
Matthew Dillon [Thu, 16 Oct 2008 17:23:20 +0000 (17:23 +0000)]
Add a new utility called 'monitor' which uses kqueue to monitor a
list of files and directories specified on the command line.
Sepherosa Ziehau [Thu, 16 Oct 2008 14:58:50 +0000 (14:58 +0000)]
Adjust max read request size according to MTU; 512 seems to be the only
value that works with jumbo frames without "watchdog timeout" during
UDP_STREAM netperf tests.
Sepherosa Ziehau [Thu, 16 Oct 2008 12:46:40 +0000 (12:46 +0000)]
According to wpaul's comment, 8139C+ only support 64 TX/RX descriptors
Sepherosa Ziehau [Thu, 16 Oct 2008 12:29:13 +0000 (12:29 +0000)]
Add hardware csum offload support for MAC style 2 chips, which include
8102E, 8102EL, 8168C, 8168CP and 8168D.
Obtained-from: RealTek r8101-1.009.00 r8168-8.008.00
Add RE_C_AUTOPAD capability to indicate hardware could correctly pad
short ether frames. Turn it on for newer version of 8168B (0x38000000
and 0xb8000000) and MAC style 2 chips; manually padding short UDP packets
for newer version 8168B will result in incorrect UDP csum, while manually
padding short ICMP packets for MAC style 2 chips will result in both
incorrect IP header csum and incorrect IP length (o_O)
Sascha Wildner [Thu, 16 Oct 2008 08:15:18 +0000 (08:15 +0000)]
Xref utrace(2) from ktrace(2) instead of ktrace(1).
Matthias Schmidt [Thu, 16 Oct 2008 07:58:43 +0000 (07:58 +0000)]
Add man page for utrace(2). With modifications from FreeBSD. Xref utrace(2)
in ktrace(1).
Sascha Wildner [Thu, 16 Oct 2008 01:52:34 +0000 (01:52 +0000)]
* Silence -Wold-style-definition (i.e., ansify).
* Remove 'register'.
* Remove P() and friends.
Matthew Dillon [Wed, 15 Oct 2008 22:38:37 +0000 (22:38 +0000)]
Change hammer_str_to_tid() and its callers to restrict the format of
strings after the '@@' portion of the filename. Unknown formats are
simply passed through, so for example you can create a file called 'x@@b'
without it thinking it is 'x' with a @@b transaction id extension.
The formats allowed are:
@@0x%016llx[:%05d]
@@-1[:%05d]
Any other format is passed through and not treated specially.
Reported-by: "Steve O'Hara-Smith" <steve@sohara.org>
Hasso Tepper [Wed, 15 Oct 2008 16:04:11 +0000 (16:04 +0000)]
Add code to parse the utrace(2) entries generated by malloc(3) in a more
human-readable format.
Obtained-from: FreeBSD
Matthias Schmidt [Wed, 15 Oct 2008 12:48:34 +0000 (12:48 +0000)]
Fix another path
Aggelos Economopoulos [Wed, 15 Oct 2008 12:12:51 +0000 (12:12 +0000)]
Use cred from componentname, don't access curthread
Matthias Schmidt [Wed, 15 Oct 2008 11:39:49 +0000 (11:39 +0000)]
Fix path to the dhcpd.conf file.
Matthias Schmidt [Wed, 15 Oct 2008 09:56:22 +0000 (09:56 +0000)]
Add some DragonFly specific tips.
Sascha Wildner [Tue, 14 Oct 2008 21:25:14 +0000 (21:25 +0000)]
Remove unused variable.
Found-by: LLVM/Clang Static Analyzer
Sepherosa Ziehau [Tue, 14 Oct 2008 15:11:38 +0000 (15:11 +0000)]
- Adjust PCI latency timer on all types of chips
- Adjust PCI cache line size for 8110/8169 chips
- For certain revision of 8101E, reading MAC address from IDRx may not
work; read from EEPROM instead
- Add comment that adjusting config1 and config5 may cause unrecoverible
disaster
Obtained-from: RealTek Linux drivers
Sepherosa Ziehau [Tue, 14 Oct 2008 10:42:35 +0000 (10:42 +0000)]
0x28000000 is 8168D according to Realtek r8168-8.008.00 driver
Sascha Wildner [Mon, 13 Oct 2008 19:53:54 +0000 (19:53 +0000)]
Sync zoneinfo database with tzdata2008h from elsie.
africa: 8.16 -> 8.17
asia: 8.23 -> 8.24
southamerica: 8.29 -> 8.30
zone.tab: 8.18 -> 8.19
From Arthur David Olson's comments:
africa - Change Maurituis transition hours to 2:00 *standard* time.
asia - Change Syrian end of DST from October 1 to November 1.
southamerica - Add comment on new law 26350 (no data change yet).
zone.tab - Fix Niue's longitude.
Sepherosa Ziehau [Mon, 13 Oct 2008 14:10:42 +0000 (14:10 +0000)]
Add some PHY fixups before we do mii_phy_probe()
Obtained-from: Realtek BSD driver v176
Sepherosa Ziehau [Mon, 13 Oct 2008 13:04:41 +0000 (13:04 +0000)]
Bring in some PCI register settings from RealTek BSD driver v176. Disable
the PCI register configuration for "style 2 MAC", add comment about it.
Sepherosa Ziehau [Mon, 13 Oct 2008 11:35:02 +0000 (11:35 +0000)]
- Read ethernet address from IDRx registers.
Obtained-from: RealTek BSD driver v176
This eliminates the need to read/config EEPROM. Put EEPROM related
functions under RE_USE_EEPROM; disabled by default
- Maintain re_softc size no matter what kernel options we are using
- Remove RE_DISABLE_HWCSUM; we could do it by clearing RE_C_HWCUM
Sepherosa Ziehau [Mon, 13 Oct 2008 10:52:23 +0000 (10:52 +0000)]
re_softc.re_swcum_lim is applied to ethernet frame without trailing CRC, so
it should include the size of ether header.
Sepherosa Ziehau [Sun, 12 Oct 2008 11:17:08 +0000 (11:17 +0000)]
Avoid following possible race:
When we tell the hardware that the RX descriptor is ready to be reused, its
buffer content is not duplicated yet.
Reported-by: Jordan Gordeev <jgordeev@dir.bg>
Sepherosa Ziehau [Sun, 12 Oct 2008 10:19:31 +0000 (10:19 +0000)]
- Nuke re_type, add RE_C_8139CP to indicate the chip is 8139C+
- Change hardware revision mask from 0x7cc00000 to 0xfc800000
Obtained-from: Realtek BSD driver v176
- Convert MAC mode to MAC version and save MAC version in softc
Obtained-from: Realtek BSD driver v176
- Add hardware revision 0x34800000(8102E) and 0x28000000(chip name is unknown)
Obtained-from: Realtek BSD driver v176
Sepherosa Ziehau [Sun, 12 Oct 2008 04:08:59 +0000 (04:08 +0000)]
Rework re_probe()
Sepherosa Ziehau [Thu, 9 Oct 2008 14:30:48 +0000 (14:30 +0000)]
Rename some HWREV
Sepherosa Ziehau [Thu, 9 Oct 2008 13:45:16 +0000 (13:45 +0000)]
Update man page to reflect recent changes
Sepherosa Ziehau [Thu, 9 Oct 2008 12:46:40 +0000 (12:46 +0000)]
Increase default RX/TX descriptor count from 64 to 256
Sepherosa Ziehau [Thu, 9 Oct 2008 12:41:02 +0000 (12:41 +0000)]
Use hardware timer to simulate interrupt moderation. Old devices will no
longer be livelocked when they are receiving on GigE line. Newer devices
also gain well controlled interrupt rate.
If hardware supports interrupt moderation (e.g. 8168B, 8168C), you could
also use hardware based interrupt moderation, however, due to lack of
necessary information it does not work as reliably as simulated interrupt
moderation. It is _not_ recommended currently.
By default, PCI-E devices' simulated interrupt moderation timer is set to
75us, while PCI devices' is set to 125us.
Matthew Dillon [Thu, 9 Oct 2008 04:20:59 +0000 (04:20 +0000)]
Add code to verify the data CRC by default, in addition to the B-Tree
node CRCs.
Thomas Nikolajsen [Wed, 8 Oct 2008 21:01:54 +0000 (21:01 +0000)]
- sync usage() to man
- move snapshot command up, to reflect typical use
Sepherosa Ziehau [Wed, 8 Oct 2008 13:09:22 +0000 (13:09 +0000)]
LINKCHG interrupt is still needed
Thomas Nikolajsen [Tue, 7 Oct 2008 22:30:31 +0000 (22:30 +0000)]
- fix UP build
Thomas Nikolajsen [Tue, 7 Oct 2008 22:28:41 +0000 (22:28 +0000)]
- sync usage() to manual
- use `PFS #' in output, not `pfs_id' sometimes
Thomas Nikolajsen [Tue, 7 Oct 2008 22:23:12 +0000 (22:23 +0000)]
- null mount for PFS slave can't be set up before first mirroring operation,
as PFS slave path is unusable, as described in example
- add markup
Sepherosa Ziehau [Tue, 7 Oct 2008 12:49:05 +0000 (12:49 +0000)]
- According to Realtek's BSD driver v176, we could always write to MISSEDPKT
- Use pci_get_pciecap_ptr() to decide whether a given chip is PCI-E or not
- Rename re_flags to re_caps; we will need a real re_flags soon
Sepherosa Ziehau [Tue, 7 Oct 2008 11:57:18 +0000 (11:57 +0000)]
- It does not make sense to disable TX interrupt moderation
- Add field in softc to store RX related interrupt bits
This cleanup eases upcoming changes.
Sepherosa Ziehau [Tue, 7 Oct 2008 11:39:36 +0000 (11:39 +0000)]
- Nuke interrupt bits definition which don't apply to 8169
- Don't test TX desc unavailable bit in re_intr, since it is never enabled
Sascha Wildner [Tue, 7 Oct 2008 06:57:40 +0000 (06:57 +0000)]
Add missing .Lb
Sascha Wildner [Mon, 6 Oct 2008 21:21:30 +0000 (21:21 +0000)]
Add some xrefs.
Sascha Wildner [Mon, 6 Oct 2008 21:01:37 +0000 (21:01 +0000)]
POSIX conformance:
Add fmtmsg(3), posix_madvise(3), strfmon(3) and wordexp(3).
Taken-from: FreeBSD
Sascha Wildner [Mon, 6 Oct 2008 16:26:22 +0000 (16:26 +0000)]
Sync zoneinfo database with tzdata2008g from elsie.
southamerica: 8.27 -> 8.29
From 2008 on, DST in Brazil will be from the 3rd Sunday in October to the
3rd Sunday in February. If Carnival Sunday happens to be on the same day,
DST ends a week later.
Sepherosa Ziehau [Mon, 6 Oct 2008 14:51:10 +0000 (14:51 +0000)]
- Rearrange comment
- Reduce RX im timer from 125us to 50us
Sepherosa Ziehau [Mon, 6 Oct 2008 14:22:32 +0000 (14:22 +0000)]
Add RX interrupt moderation suport for PCI-E GigaE chips.
Interrupt moderation register position is obtained from Realtek's
BSD driver v176.
The meaning of the IM register bits is partially reverse engineered:
RX timer position and unit.
This kind of interrupt moderation does not work on PCI GigaE chips.
Sascha Wildner [Sun, 5 Oct 2008 18:26:41 +0000 (18:26 +0000)]
Fix bug: sprintf() was used where snprintf() was meant.
Sascha Wildner [Sun, 5 Oct 2008 10:45:28 +0000 (10:45 +0000)]
Nuke obsolete DEVICE_SYSCTLS option.
Sepherosa Ziehau [Sun, 5 Oct 2008 08:28:32 +0000 (08:28 +0000)]
re_freebufmem() may be re-entered, so set the mbuf tag to NULL after it is
destroyed.
Sepherosa Ziehau [Sun, 5 Oct 2008 07:57:45 +0000 (07:57 +0000)]
- Set hardware timer according to bus clock. Adjust hardware timer to 8000HZ
- For PCI-E device, increase "max read request size" from default value (512)
to 4096. With 512 TX descriptors, this change gives me additional +80-90Mbps
during netperf stream tests on an 8168C.
Sepherosa Ziehau [Sun, 5 Oct 2008 06:15:36 +0000 (06:15 +0000)]
Get bus clock, which will be used to fix broken TCTR setting (hardware timer,
interrupt moderation related)
Sepherosa Ziehau [Sun, 5 Oct 2008 05:00:58 +0000 (05:00 +0000)]
Set ifq maxlen according to number of TX descriptors
Sepherosa Ziehau [Sun, 5 Oct 2008 04:54:51 +0000 (04:54 +0000)]
Add tunable for RX/TX descriptor count
Sepherosa Ziehau [Sun, 5 Oct 2008 02:13:06 +0000 (02:13 +0000)]
Don't assume that RE_RX_DESC_CNT and RE_TX_DESC_CNT are always same
Sepherosa Ziehau [Sun, 5 Oct 2008 01:53:41 +0000 (01:53 +0000)]
Move some macros from if_rereg.h to if_revar.h; regroup them
Sepherosa Ziehau [Sun, 5 Oct 2008 01:43:09 +0000 (01:43 +0000)]
re_chain_data is never used
Sascha Wildner [Sat, 4 Oct 2008 22:38:42 +0000 (22:38 +0000)]
Whitespace adjustment.
Sascha Wildner [Sat, 4 Oct 2008 22:36:25 +0000 (22:36 +0000)]
Remove unnecessary .Pp
Sascha Wildner [Sat, 4 Oct 2008 22:09:17 +0000 (22:09 +0000)]
* Constify return type of gai_strerror() as per bwg2001-009
(see http://www.opengroup.org/platform/resolutions/bwg2001-many.html).
* Return EAI_OVERFLOW instead of EAI_MEMORY when the supplied buffer is
too short. This conforms to RFC 3493, POSIX and XPG6.
* Add a gai_strerror(3) manual page.
Taken-from: FreeBSD
Sascha Wildner [Sat, 4 Oct 2008 14:22:44 +0000 (14:22 +0000)]
Silence warning on UP build with KTR.
Sepherosa Ziehau [Sat, 4 Oct 2008 11:26:09 +0000 (11:26 +0000)]
- Add tunable (net.link.ether.inet.arp_mpsafe) to register ARP as MPSAFE netisr.
- Hold BGL on CARP in arp input path.
Sepherosa Ziehau [Sat, 4 Oct 2008 11:24:37 +0000 (11:24 +0000)]
On ethernet output path:
Hold BGL on IPX, ATALK, CARP and netgraph
Sepherosa Ziehau [Sat, 4 Oct 2008 11:21:10 +0000 (11:21 +0000)]
Recheck ifnet.if_bpf after we hold the BGL
Sepherosa Ziehau [Sat, 4 Oct 2008 10:36:21 +0000 (10:36 +0000)]
- For relative newer parts (8168B), setting MTPS (max transmit packet size)
according to MTU makes jumbo frame + TX csum offloading work. However,
for old ones (8169), setting MTPS does not have much effect.
- Reduce max jumbo frame size from 9018 to 7440 (according to DS)
- Fix MTU setting in re_ioctl
Hasso Tepper [Sat, 4 Oct 2008 09:57:14 +0000 (09:57 +0000)]
How buggy this little piece of code could be? Repair strnvis() buffersize
of 4*n+1, with termination gauranteed by the function.
Obtained-from: OpenBSD
Thomas Nikolajsen [Fri, 3 Oct 2008 21:26:28 +0000 (21:26 +0000)]
- adjust boot command description for booting from
root of boot-only file system
- improve markup
- fix exmaple of dummy s0 partition to use enough space for disklabel