4 years agoSync ucom.4, uplcom.4 and uslcom.4 with FreeBSD.
Sascha Wildner [Fri, 14 Mar 2014 21:40:48 +0000 (22:40 +0100)]
Sync ucom.4, uplcom.4 and uslcom.4 with FreeBSD.

4 years agolibusb: add libusb_log_level enum
Markus Pfeiffer [Fri, 14 Mar 2014 19:27:20 +0000 (19:27 +0000)]
libusb: add libusb_log_level enum

This is documented on http://libusb.sourceforge.net/api-1.0/group__lib.html

4 years agoAdd udav(4) and uep(4) manual pages.
Sascha Wildner [Fri, 14 Mar 2014 10:20:52 +0000 (11:20 +0100)]
Add udav(4) and uep(4) manual pages.

4 years agoSync uhid.4 with FreeBSD.
Sascha Wildner [Fri, 14 Mar 2014 10:10:43 +0000 (11:10 +0100)]
Sync uhid.4 with FreeBSD.

4 years agoSync ugen.4 with FreeBSD.
Sascha Wildner [Fri, 14 Mar 2014 09:28:37 +0000 (10:28 +0100)]
Sync ugen.4 with FreeBSD.

4 years agoSync axe.4 with FreeBSD.
Sascha Wildner [Thu, 13 Mar 2014 22:42:07 +0000 (23:42 +0100)]
Sync axe.4 with FreeBSD.

4 years agoGnargh, fix typo.
Sascha Wildner [Thu, 13 Mar 2014 18:32:20 +0000 (19:32 +0100)]
Gnargh, fix typo.

4 years agoRemove usbdevs_data.h in /usr/include via 'make upgrade'.
Sascha Wildner [Thu, 13 Mar 2014 18:31:30 +0000 (19:31 +0100)]
Remove usbdevs_data.h in /usr/include via 'make upgrade'.

4 years agokernel - Correct second edge-case for machdep.pmap_mmu_optimize
Matthew Dillon [Thu, 13 Mar 2014 16:25:29 +0000 (09:25 -0700)]
kernel - Correct second edge-case for machdep.pmap_mmu_optimize

* The pmap_release*() code was previously optimized to not invalidate
  on pml4, pdp, pd, or pt pte's, only on terminal ptes.  This invalidation
  interferes with the PT replacement that the pmap_mmu_optimize feature

* The bug generally would only occur when memory is mmap()'d and munmap()'d
  multiple times, which something like postgres will not do, but which
  rtorrent and other programs will do.

* Correctly invalidate page tables (use invltlb) when PT pte's are replaced.

* Requires further testing.  Default for this feature is still off.

4 years agonrelease - Minor fixes
Antonio Huete Jimenez [Thu, 13 Mar 2014 14:25:24 +0000 (07:25 -0700)]
nrelease - Minor fixes

- Use 'reinstallkernel' to avoid leaving *.old files
  in the ISO image.
- Make sure the '/boot/kernel/kernel.BOOTP' symbolic link
  is recreated when it already exists (-f option to ln).
- Do not use '-p' to cp. In the case /etc/resolv.conf file
  has schg flag set, a later rm during nrelease would fail.

Submitted-by: YONETANI Tomokazu <y0netan1@dragonflybsd.org>
DragonFly-bug: <http://bugs.dragonflybsd.org/issues/1496>

This commit closes #1496

4 years agosbin/hammer - Add 'header' option for mirror-dump directive.
Antonio Huete Jimenez [Thu, 13 Mar 2014 11:49:33 +0000 (12:49 +0100)]
sbin/hammer - Add 'header' option for mirror-dump directive.

- Provide means to dump PFS information only via 'mirror-dump'
- Snapshots directory is not shown at the moment.

Submitted-by: YONETANI Tomokazu <y0netan1@dragonflybsd.org>
DragonFly-bug: <http://bugs.dragonflybsd.org/issues/1497>

This commit closes #1497

4 years agotools - Fix operator in hammer-backup.sh
Antonio Huete Jimenez [Thu, 13 Mar 2014 09:43:30 +0000 (10:43 +0100)]
tools - Fix operator in hammer-backup.sh

Submitted-by: Freddy DISSAUX
4 years agotools - Fix return code in hammer-backup.sh
Antonio Huete Jimenez [Thu, 13 Mar 2014 09:25:56 +0000 (10:25 +0100)]
tools - Fix return code in hammer-backup.sh

- When requesting help with '-h', exit with return code 0.

Submitted-by: Freddy DISSAUX
4 years agoehci.4: Break a long line.
Sascha Wildner [Thu, 13 Mar 2014 09:28:03 +0000 (10:28 +0100)]
ehci.4: Break a long line.

4 years agoSync ehci.4, ohci.4 and uhci.4 with FreeBSD. Bring in xhci.4.
Sascha Wildner [Thu, 13 Mar 2014 09:21:30 +0000 (10:21 +0100)]
Sync ehci.4, ohci.4 and uhci.4 with FreeBSD. Bring in xhci.4.

4 years agoFix a couple of mdoc issues in libusb.3 and usbdi.9.
Sascha Wildner [Thu, 13 Mar 2014 09:08:22 +0000 (10:08 +0100)]
Fix a couple of mdoc issues in libusb.3 and usbdi.9.

4 years agokernel - Hack fix for tty last-close bug
Matthew Dillon [Thu, 13 Mar 2014 01:44:50 +0000 (18:44 -0700)]
kernel - Hack fix for tty last-close bug

* If a tty is owned by one devfs mount and programs are run which open/close
  the tty in a different devfs mount, the last-close test will get confused
  and believe that the last close in the second mount is the last close on
  the device, when the first mount still has it open.

* Temporarily hack a fix which is not SMP safe to deal with the situation.
  A proper fix requires us to put a struct lock and an opencount field in
  the struct cdev itself and use that instead of v_opencount.

* Fixes issue with 'screen' exiting when sub-processes are run inside a
  chroot (with their own /dev mount).

Reported-by: marino
4 years agousb4bsd: Remove usbdevs_data.h again.
Sascha Wildner [Wed, 12 Mar 2014 23:36:51 +0000 (00:36 +0100)]
usb4bsd: Remove usbdevs_data.h again.

It is automatically generated and only usbdevs needs to be modified for
new IDs.

Reported-by: tuxillo
4 years agobus_autoconf.sh: Stop putting $FreeBSD$ into the usb.conf database.
Sascha Wildner [Wed, 12 Mar 2014 21:47:21 +0000 (22:47 +0100)]
bus_autoconf.sh: Stop putting $FreeBSD$ into the usb.conf database.

It is generated locally and gets never synched with FreeBSD.

4 years agoAdd a tool to keep the devd(8) database in sync with our USB device support.
Sascha Wildner [Wed, 12 Mar 2014 20:09:08 +0000 (21:09 +0100)]
Add a tool to keep the devd(8) database in sync with our USB device support.

Taken-from: FreeBSD

4 years agodevd(8): Sync with FreeBSD and turn it on by default.
Sascha Wildner [Wed, 12 Mar 2014 20:09:03 +0000 (21:09 +0100)]
devd(8): Sync with FreeBSD and turn it on by default.

Most important of all, it cares about knowing which USB modules
support which device/vendor IDs and it will load the associated
module upon USB device plugging if it is not already loaded or
in the kernel config.

Taken-from: FreeBSD

4 years agorc.subr: Add get_pidfile_from_conf (from FreeBSD).
Sascha Wildner [Wed, 12 Mar 2014 20:00:40 +0000 (21:00 +0100)]
rc.subr: Add get_pidfile_from_conf (from FreeBSD).

4 years agousb4bsd: Fix some mistakes i made in 5782e8a131ef79.
Sascha Wildner [Wed, 12 Mar 2014 19:37:23 +0000 (20:37 +0100)]
usb4bsd: Fix some mistakes i made in 5782e8a131ef79.

4 years agorc: Use kldload -n in our rc scripts which load modules.
Sascha Wildner [Wed, 12 Mar 2014 19:12:02 +0000 (20:12 +0100)]
rc: Use kldload -n in our rc scripts which load modules.

4 years agokldload(8): Add -n for checking if a module is already loaded.
Sascha Wildner [Wed, 12 Mar 2014 18:32:18 +0000 (19:32 +0100)]
kldload(8): Add -n for checking if a module is already loaded.

Also, give better error messages upon EEXISTS and ENOEXEC.

Taken-from: FreeBSD

4 years agousb4bsd: Update ukbd driver
Markus Pfeiffer [Wed, 12 Mar 2014 13:14:37 +0000 (13:14 +0000)]
usb4bsd: Update ukbd driver

4 years agoNow that the base issue is fixed, enable -Wsign-compare again in scanners.
Sascha Wildner [Wed, 12 Mar 2014 12:36:01 +0000 (13:36 +0100)]
Now that the base issue is fixed, enable -Wsign-compare again in scanners.

Disabling warnings is usually not fixing them.

4 years agoflex: Fix -Wsign-compare warnings in generated scanners.
Sascha Wildner [Wed, 12 Mar 2014 12:27:42 +0000 (13:27 +0100)]
flex: Fix -Wsign-compare warnings in generated scanners.

4 years agolibusb20.3: Remove a reference to a (yet?) non-existent module.
Sascha Wildner [Tue, 11 Mar 2014 20:30:57 +0000 (21:30 +0100)]
libusb20.3: Remove a reference to a (yet?) non-existent module.

4 years agouipaq.4: Comment out a dead reference.
Sascha Wildner [Tue, 11 Mar 2014 20:18:03 +0000 (21:18 +0100)]
uipaq.4: Comment out a dead reference.

4 years agoBring in libusb20 examples from FreeBSD.
Sascha Wildner [Tue, 11 Mar 2014 20:24:50 +0000 (21:24 +0100)]
Bring in libusb20 examples from FreeBSD.

4 years agoSync umass.4 with FreeBSD.
Sascha Wildner [Tue, 11 Mar 2014 19:53:37 +0000 (20:53 +0100)]
Sync umass.4 with FreeBSD.

4 years agoSync zoneinfo database with tzdata2014a from ftp://ftp.iana.org/tz/releases
Sascha Wildner [Tue, 11 Mar 2014 14:38:23 +0000 (15:38 +0100)]
Sync zoneinfo database with tzdata2014a from ftp://ftp.iana.org/tz/releases

See https://github.com/eggert/tz/blob/master/NEWS for a list of
what changed. We were previously in sync with tzdata2013i.

4 years agoSync ums.4 and ukbd.4 with FreeBSD.
Sascha Wildner [Tue, 11 Mar 2014 13:41:53 +0000 (14:41 +0100)]
Sync ums.4 and ukbd.4 with FreeBSD.

4 years agousbdi.9: Sync with FreeBSD.
Sascha Wildner [Tue, 11 Mar 2014 13:26:20 +0000 (14:26 +0100)]
usbdi.9: Sync with FreeBSD.

4 years agourtwn.4: Use %O for now.
Sascha Wildner [Tue, 11 Mar 2014 13:11:47 +0000 (14:11 +0100)]
urtwn.4: Use %O for now.

4 years agoSync uvisor.4 and uvscom.4 with FreeBSD.
Sascha Wildner [Tue, 11 Mar 2014 12:57:43 +0000 (13:57 +0100)]
Sync uvisor.4 and uvscom.4 with FreeBSD.

4 years agoSync some USB serial driver manual pages with FreeBSD.
Sascha Wildner [Tue, 11 Mar 2014 12:33:55 +0000 (13:33 +0100)]
Sync some USB serial driver manual pages with FreeBSD.


4 years agousb4bsd: Add back the ID for HandyTech's Braille displays to ubsa(4).
Sascha Wildner [Tue, 11 Mar 2014 12:18:29 +0000 (13:18 +0100)]
usb4bsd: Add back the ID for HandyTech's Braille displays to ubsa(4).

See fb55151b494cf8878797ecfa6429d34f3a757765 where it was added
to our old obsa(4).

Also sync the manual page with FreeBSD.

4 years agotcp: Remove unused code
Sepherosa Ziehau [Tue, 11 Mar 2014 11:38:23 +0000 (19:38 +0800)]
tcp: Remove unused code

4 years agoAdd some USB serial driver manpages from FreeBSD.
Sascha Wildner [Tue, 11 Mar 2014 10:57:13 +0000 (11:57 +0100)]
Add some USB serial driver manpages from FreeBSD.


4 years agousbconfig.8: Add a usbdump(8) reference.
Sascha Wildner [Tue, 11 Mar 2014 10:31:00 +0000 (11:31 +0100)]
usbconfig.8: Add a usbdump(8) reference.

4 years agousb4bsd: Remove an obsolete comment in a Makefile.
Sascha Wildner [Tue, 11 Mar 2014 07:52:19 +0000 (08:52 +0100)]
usb4bsd: Remove an obsolete comment in a Makefile.

4 years agousb4bsd: Fix some SCSI handling in umass
Markus Pfeiffer [Mon, 10 Mar 2014 22:33:13 +0000 (22:33 +0000)]
usb4bsd: Fix some SCSI handling in umass

Set the sense data on probe.

4 years agoAdd libusb to <bsd.libnames.mk>.
Sascha Wildner [Mon, 10 Mar 2014 21:22:23 +0000 (22:22 +0100)]
Add libusb to <bsd.libnames.mk>.

4 years agoSync usbconfig(8) with FreeBSD.
Sascha Wildner [Mon, 10 Mar 2014 21:21:16 +0000 (22:21 +0100)]
Sync usbconfig(8) with FreeBSD.

4 years agoBring in FreeBSD's usbdump(8).
Sascha Wildner [Mon, 10 Mar 2014 21:11:53 +0000 (22:11 +0100)]
Bring in FreeBSD's usbdump(8).

4 years agoBring in FreeBSD's usbhidaction(1).
Sascha Wildner [Mon, 10 Mar 2014 21:02:44 +0000 (22:02 +0100)]
Bring in FreeBSD's usbhidaction(1).

4 years agoSync the new USB stack's usbhidctl(1) with FreeBSD.
Sascha Wildner [Mon, 10 Mar 2014 20:46:26 +0000 (21:46 +0100)]
Sync the new USB stack's usbhidctl(1) with FreeBSD.

4 years agoSync the new USB stack's libusbhid with FreeBSD.
Sascha Wildner [Mon, 10 Mar 2014 20:31:59 +0000 (21:31 +0100)]
Sync the new USB stack's libusbhid with FreeBSD.

4 years agoSync libusb with FreeBSD.
Sascha Wildner [Mon, 10 Mar 2014 20:22:22 +0000 (21:22 +0100)]
Sync libusb with FreeBSD.

4 years agoAdjust SYNOPSIS in a couple of USB driver manual pages.
Sascha Wildner [Mon, 10 Mar 2014 18:41:01 +0000 (19:41 +0100)]
Adjust SYNOPSIS in a couple of USB driver manual pages.

Namely, put "device oldusb" in all manual pages which are for drivers
that are only available in the old stack, be it because they are not
yet ported or because they are specific to the old stack.

4 years agokernel/ndis: Solve module build without a USB bus in the config better.
Sascha Wildner [Mon, 10 Mar 2014 18:32:34 +0000 (19:32 +0100)]
kernel/ndis: Solve module build without a USB bus in the config better.

When there is no USB bus in the config, the ndis modules need a hint
about which of the two possible USB stacks to build for. Always build
for usb4bsd unless oldusb is explicitly specified.

4 years agousb4bsd: Remove irritating kprintf
Markus Pfeiffer [Mon, 10 Mar 2014 17:57:15 +0000 (17:57 +0000)]
usb4bsd: Remove irritating kprintf

4 years agoAdd new usb4bsd only devices to LINT/LINT64.
Sascha Wildner [Mon, 10 Mar 2014 15:07:43 +0000 (16:07 +0100)]
Add new usb4bsd only devices to LINT/LINT64.

4 years agousb4bsd: Fix a couple of typos and build issues.
Sascha Wildner [Mon, 10 Mar 2014 13:56:38 +0000 (14:56 +0100)]
usb4bsd: Fix a couple of typos and build issues.

4 years agoLINT/LINT64: Fix umass comment.
Sascha Wildner [Mon, 10 Mar 2014 10:35:26 +0000 (11:35 +0100)]
LINT/LINT64: Fix umass comment.

4 years agokernel: Comment out old or yet unsupported USB devices in our configs.
Sascha Wildner [Mon, 10 Mar 2014 10:25:25 +0000 (11:25 +0100)]
kernel: Comment out old or yet unsupported USB devices in our configs.

4 years agochgsbsize: Optimize for x86_64 by avoid uidinfo spinlock
Sepherosa Ziehau [Mon, 10 Mar 2014 08:38:15 +0000 (16:38 +0800)]
chgsbsize: Optimize for x86_64 by avoid uidinfo spinlock

This kills one of the highly contended spinlocks on accept(2) path.  And
it also greatly helps connect(2) path.

With this commit, tools/kq_connect_client could do 273Kconns/s instead
of 260Kconns/s (~5% improvement, however, connect(2) is still cpu bound).

4 years agousb4bsd: Adjust a Makefile comment.
Sascha Wildner [Mon, 10 Mar 2014 02:20:21 +0000 (03:20 +0100)]
usb4bsd: Adjust a Makefile comment.

4 years agoMake usb4bsd the default USB stack.
Sascha Wildner [Mon, 10 Mar 2014 01:49:31 +0000 (02:49 +0100)]
Make usb4bsd the default USB stack.

To get back to the old stack, put "WANT_OLDUSB=yes" in /etc/make.conf and
replace "device usb" with "device oldusb" in the kernel configuration.

Requested-by: dillon, profmakx, marino etc.
4 years agousb4bsd - Fix poll/select/kqfilter issues with ums and usb_fifo*() API
Matthew Dillon [Mon, 10 Mar 2014 00:01:41 +0000 (17:01 -0700)]
usb4bsd - Fix poll/select/kqfilter issues with ums and usb_fifo*() API

* Fix handling of f->flag_isselect.  It was being improperly cleared on
  event notification.  It can only be cleared when the knote is removed.

* Call f->methods->f_start_read() unconditionally in usb_filter_read().
  Conditionalizing on f->queue_data will fail with devices (aka ums) which
  allocate the buffer independantly of starting the interrupt xfer.

* Call usb_fifo_wakeup() in mbuf re-queue cases to handle races when
  the read() code pulls an mbuf off the queue and then puts it back on.

* Fix bugs in UMS - Keep track of whether the interrupt transfer is running
  or not and do not re-submit or re-stop the transfer unconditionally.

4 years agousb4bsd: Adjust 'make upgrade' for the serial driver modules.
Sascha Wildner [Mon, 10 Mar 2014 00:01:39 +0000 (01:01 +0100)]
usb4bsd: Adjust 'make upgrade' for the serial driver modules.

4 years agousb4bsd: Allow to build serial drivers into the kernel too.
Sascha Wildner [Sun, 9 Mar 2014 23:59:53 +0000 (00:59 +0100)]
usb4bsd: Allow to build serial drivers into the kernel too.

4 years agousb4bsd: Fix typo in last commit.
Sascha Wildner [Sun, 9 Mar 2014 23:52:57 +0000 (00:52 +0100)]
usb4bsd: Fix typo in last commit.

4 years agousb4bsd: Fix some warnings in usb_serial.
Sascha Wildner [Sun, 9 Mar 2014 23:33:06 +0000 (00:33 +0100)]
usb4bsd: Fix some warnings in usb_serial.

* Fix two cases where sc was passed to ucom_modem() but sc->sc_tty
  should have been.

* Comment out a debug variable.

* Use #if 0 consequently and add a few more.

* Indent fixes.

OK'd-by: profmakx

4 years agousb4bsd: usb_dev kqfilter
Markus Pfeiffer [Sun, 9 Mar 2014 01:09:52 +0000 (01:09 +0000)]
usb4bsd: usb_dev kqfilter

* implement a working kqfilter
* integrate some FreeBSD patches

4 years agousb4bsd: work on usb_serial.c
Markus Pfeiffer [Sun, 9 Mar 2014 01:09:20 +0000 (01:09 +0000)]
usb4bsd: work on usb_serial.c

4 years agousb4bsd: use generated usbdevs.h
Markus Pfeiffer [Sat, 1 Mar 2014 19:18:21 +0000 (19:18 +0000)]
usb4bsd: use generated usbdevs.h

replace respective includes and fixup makefiles

4 years agousb4bsd: Implement kqfilter for usb_dev
Markus Pfeiffer [Fri, 28 Feb 2014 21:21:04 +0000 (21:21 +0000)]
usb4bsd: Implement kqfilter for usb_dev

4 years agousb4bsd: port usb_serial
Markus Pfeiffer [Tue, 25 Feb 2014 22:14:46 +0000 (22:14 +0000)]
usb4bsd: port usb_serial

4 years agoStart porting ucom.
Markus Pfeiffer [Wed, 5 Feb 2014 23:01:44 +0000 (23:01 +0000)]
Start porting ucom.

* import serial.h from freebsd
* comment almost everything out in usb_serial.c
* make the whole thing compile

4 years agotools - Fix a couple mistakes.
Antonio Huete Jimenez [Sun, 9 Mar 2014 17:12:00 +0000 (18:12 +0100)]
tools - Fix a couple mistakes.

- Don't write metadata file on dry-run mode for hammer-backup.sh
- Fix a corner case where hammer mirror-read does not find any changes
  and thus provides no endtid. Reused begtid for the metadata file
- Exit and remove the incremental file generated if we can't figure out
  which entid has to be written to the metadata file

4 years agotools - Reorganise a bit info messages in hammer-info.sh
Antonio Huete Jimenez [Sun, 9 Mar 2014 17:04:26 +0000 (18:04 +0100)]
tools - Reorganise a bit info messages in hammer-info.sh

- Also silence errors in md5's output.
- Remove some info that is already on the README

4 years agotools - Add option -k to hammer-backup.sh
Antonio Huete Jimenez [Sun, 9 Mar 2014 16:48:17 +0000 (17:48 +0100)]
tools - Add option -k to hammer-backup.sh

- This new option goes through all metadata backup files in the
  specified backup directory and performs a checksum on them.
- While here fix usage.

4 years agotools - Easier incremental backups for hammer-backup.sh.
Antonio Huete Jimenez [Sun, 9 Mar 2014 16:24:36 +0000 (17:24 +0100)]
tools - Easier incremental backups for hammer-backup.sh.

- If 'auto' is specified with option -i, then the latest full backup will
  be used. This allows easier backups via crontab for example.
- Fix a couple things in README.

4 years agotools - Improve hammer-backup.sh a bit
Antonio Huete Jimenez [Sun, 9 Mar 2014 13:24:06 +0000 (14:24 +0100)]
tools - Improve hammer-backup.sh a bit

- Use globbing where appropriate.
- Fix some tests.
- Fix awk usage in some cases.
- Remove unused variables.

Submitted-by: Freddy DISSAUX
4 years agotools - Fix indentation.
Antonio Huete Jimenez [Sun, 9 Mar 2014 12:49:19 +0000 (13:49 +0100)]
tools - Fix indentation.

- Use the same indentation across the whole hammer-backup.sh

Spotted-by: Freddy DISSAUX
4 years agochgsbsize: Reduce cover range of uidinfo spinlock
Sepherosa Ziehau [Sun, 9 Mar 2014 12:31:50 +0000 (20:31 +0800)]
chgsbsize: Reduce cover range of uidinfo spinlock

4 years agoethernet: If caller thread cpu is fixed, pass cpuid to ether_input_pkt()
Sepherosa Ziehau [Sun, 9 Mar 2014 11:28:18 +0000 (19:28 +0800)]
ethernet: If caller thread cpu is fixed, pass cpuid to ether_input_pkt()

So we could use optimized lwkt_sendmsg_oncpu() instead of lwkt_sendmsg(),
if the target netisr is on the same cpu as caller thread cpu.  Mainly to
avoid unnecessary wakeup() IPIs to other cpus.


On i7-3770 w/ HT enabled (8 logical cpus); NIC is 82599ES w/ 8 RX rings
and 8 TX rings.  Run:
    repeat 10 tcp_stream -H ... -i 256 -l 10 -r
(256 netperf TCP_MAERTS instances for 10 seconds, 10 rounds)

Total amount of cross IPIs before this commit is 6946097.  Total amount
of cross IPIs as of this commit is 5445324.  ~22% unnecessary wakeup()
IPIs are avoided!

4 years agokernel: Fixup KERN_PROC_PATHNAME sysctl
Markus Pfeiffer [Sun, 9 Mar 2014 01:15:10 +0000 (01:15 +0000)]
kernel: Fixup KERN_PROC_PATHNAME sysctl

The code for the sysctl uses pfind, which PHOLDs the process
if a pid is passed to the sysctl, so we PRELE the process
if necessary.

4 years agohammer2 - Fix stack blowout in lookup iteration
Matthew Dillon [Sat, 8 Mar 2014 05:49:30 +0000 (21:49 -0800)]
hammer2 - Fix stack blowout in lookup iteration

* hammer2_chain_lookup()->hammer2_chain_next()->hammer2_chain_lookup()
  stacking could blow out the kernel stack.

* Inline the iteration within hammer2_chain_lookup() when the lookup runs
  out of blockrefs without finding anything at the current level, instead
  of having it call hammer2_chain_next().

4 years agohammer2 - stabilization
Matthew Dillon [Sat, 8 Mar 2014 05:15:43 +0000 (21:15 -0800)]
hammer2 - stabilization

* Remove write transaction from hammer2_vop_reclaim().  This was being
  used to do the final deletion of chains for unlinked-but-open files.
  Instead, the related inode is placed on a pmp->unlinkq and finalization
  is handled by the sync and rmdir code.

* Fixes problems with flush synchronization due to the fact that a reclaim
  can occur at any time.

4 years agoSun switched these files to a 3-clause BSD license in 2009.
Justin C. Sherrill [Sat, 8 Mar 2014 04:42:53 +0000 (23:42 -0500)]
Sun switched these files to a 3-clause BSD license in 2009.

Change-noted-in: http://svnweb.freebsd.org/base?view=revision&revision=258564

4 years agotools - Implement a simple hammer-backup script.
Antonio Huete Jimenez [Fri, 7 Mar 2014 23:37:48 +0000 (00:37 +0100)]
tools - Implement a simple hammer-backup script.

This script operates HAMMER PFSes and dumps its contents for backup

It uses mirror-read directive (see 'man 8 hammer') to perform a
dump to stdout that is redirected to a file with or without

Read /usr/src/tools/tools/hammer-backup/README for more detailed

Also please note the script is not installed with a default DragonFly
BSD installation, so you have to take care of that manually.

Any suggestion or bug report is appreciated!

4 years agohammer2 - Stabilization pass
Matthew Dillon [Fri, 7 Mar 2014 21:54:00 +0000 (13:54 -0800)]
hammer2 - Stabilization pass

* Fix case in hammer2_chain_delete_duplicate(), allow delete-duplication
  of a deleted terminal chain outside of a flush.

* Fix assertions in the flush code.  Deleted parent's block tables are not
  updated.  If all parents are deleted we allow the CHAIN_DELETED flag to
  be cleared in children even though the children might still be on the
  DBTREE or be flagged BMAPPED.

* Fix bug in hammer2_bioq_sync() where new logical buffers instantiated while
  flushing existing buffers are not waited for before exiting the PREFLUSH
  state.  This might not actually be a bug but cover the case for now.

4 years agoRevert "Add an /etc/periodic script to check for dports package vulnerabilities."
Sascha Wildner [Thu, 6 Mar 2014 22:08:27 +0000 (23:08 +0100)]
Revert "Add an /etc/periodic script to check for dports package vulnerabilities."

This reverts commit dced1188f0aae7a3a714a58540f8f6bf4043f35c.

Aw, actually there are scripts in /usr/local/etc/periodic doing just that.

4 years agoAdd an /etc/periodic script to check for dports package vulnerabilities.
Sascha Wildner [Thu, 6 Mar 2014 21:56:45 +0000 (22:56 +0100)]
Add an /etc/periodic script to check for dports package vulnerabilities.

It's basically just 'pkg audit' at them moment, the output of which is
then included in the nightly security mails.

To disable this check for some reason, daily_status_dports_audit_enable
can be set to 'no' in /etc/periodic.conf.

Reported-by: joris
4 years agoAdd a urtwnfw(4) manual page (from FreeBSD).
Sascha Wildner [Thu, 6 Mar 2014 17:09:42 +0000 (18:09 +0100)]
Add a urtwnfw(4) manual page (from FreeBSD).

4 years agohier.7: Add /compat/ndis, binutils adjustments, remove /etc/firmare.
Sascha Wildner [Thu, 6 Mar 2014 16:45:38 +0000 (17:45 +0100)]
hier.7: Add /compat/ndis, binutils adjustments, remove /etc/firmare.

4 years agohammer2 - Reduce flush complexity, fix panics
Matthew Dillon [Thu, 6 Mar 2014 02:37:57 +0000 (18:37 -0800)]
hammer2 - Reduce flush complexity, fix panics

* Set synchronous flush mode by default for now to reduce sources of
  potential crashes so the core can be stabilized.

  This means that the only transactions that will run with a higher
  transaction id during a flush are allocations from the freemap made
  by the flush itself.  This is far easier to debug.

  Concurrent frontend transactions are disabled during a flush, for now.

* The buffer flush which is run synchronously from the main flush now always
  uses an async + sync vfsync sequence and does not allow any buffers to
  be left over before entering the main flush.

* The buffer flush now also uses the same transaction id as the main flush.
  A new flag, HAMMER2_TRANS_PREFLUSH is used to manage this mechanic and
  to assert on any illegal buffer flushes.

* Fix miscellanious assertions that were incorrect, and split the pass4
  codepath in the flush into pass4 and pass5 to fix another bug.

* Fix an improper semicolon (from swildner)

* Remove more dead code.

* The hammer2_vop_reclaim() code was the only code path that would acquire
  a hammer2_inode lock prior to starting a transaction for a modifying
  operation (for the delete unlinked file on last reference).  Fix this
  code to open the transaction first and obtain the inode lock second,
  which fixes a deadlock.

* Fix an infinite while() loop due to improper arguments in a TAILQ_NEXT()

4 years agokernel: Adjust type of vmm_guest to enum vmm_guest_type.
Sascha Wildner [Wed, 5 Mar 2014 19:38:08 +0000 (20:38 +0100)]
kernel: Adjust type of vmm_guest to enum vmm_guest_type.


4 years agoinstaller: Adjust so we can install a vkernel environment using our ISOs.
Sascha Wildner [Wed, 5 Mar 2014 08:41:11 +0000 (09:41 +0100)]
installer: Adjust so we can install a vkernel environment using our ISOs.

Tested-by: tuxillo
4 years agosbin/hammer - Remove trailing '/' from paths.
Antonio Huete Jimenez [Tue, 4 Mar 2014 23:24:38 +0000 (00:24 +0100)]
sbin/hammer - Remove trailing '/' from paths.

  When operating PFSes through symbolic links, it was not
  possible to specify the trailing backslash since that
  translated to the PFS root dir instead of the symbolic link
  to the PFS itself. This caused problems when upgrading or
  downgrading PFSes (and probably in other cases too).
  The error was "Directory not empty".

  This commit should solve those cases, but keep in mind
  there are other cases where it is actually not possible
  to complete certain operations (like while destroying

Reported-by: Siju George, others
4 years agosbin/hammer - Fix a wrong error message.
Antonio Huete Jimenez [Tue, 4 Mar 2014 21:53:10 +0000 (22:53 +0100)]
sbin/hammer - Fix a wrong error message.

4 years agokernel/vfs - Fix a refcount check in vclean_unlocked()
Antonio Huete Jimenez [Tue, 4 Mar 2014 21:32:08 +0000 (22:32 +0100)]
kernel/vfs - Fix a refcount check in vclean_unlocked()

- vx_get() actually adds a ref so you actually need to count
  with that.

4 years agokernel: Add more detailed VM detection.
Sascha Wildner [Tue, 4 Mar 2014 18:07:21 +0000 (19:07 +0100)]
kernel: Add more detailed VM detection.

Previously, the kernel global 'vmm_guest' was either 0 or 1 depending
on the VMM bit in the CPU features (which isn't set in all VMs).

This commit adds more detailed information by checking the emulated
BIOS for known strings. The detected VMs include vkernel, which
doesn't strictly fit into the category, but it shares enough
similarities for this to be useful.

Also expose this information in a read-only sysctl (kern.vmm_guest).

The detection code was kind of adapted from FreeBSD (although their
kern.vm_guest works differently).

Tested-by: tuxillo
4 years agorc.d/root - Remove unnecessary 'mount /' call.
Antonio Huete Jimenez [Mon, 3 Mar 2014 23:43:02 +0000 (00:43 +0100)]
rc.d/root - Remove unnecessary 'mount /' call.

UFS and HAMMER do not emit an error when trying to mount
an already mounted root fileystem but cd9660 does.
That's why this wasn't producing any error message on
already installed systems.

While booting the LiveCD you could see:

cd9660: /dev/vcd0: Invalid argument

Reported-by: corecode
DragonFly-bug: <http://bugs.dragonflybsd.org/issues/1518>

This commit closes #1518

4 years agortld(1): Fix a typo in inactive code.
Sascha Wildner [Mon, 3 Mar 2014 18:06:50 +0000 (19:06 +0100)]
rtld(1): Fix a typo in inactive code.

Confirmed-by: kib@freebsd via marino
4 years agoSome fixes to allow building with gcc44.
Sascha Wildner [Sun, 2 Mar 2014 19:16:26 +0000 (20:16 +0100)]
Some fixes to allow building with gcc44.

Most of them for type redefinitions which gcc47 has stopped warning about
(if they are compatible).

The libstdc++ fix is modeled after gcc47's libstdc++. We don't have
__libc_C_ctype_[] anymore.