Commit Graph

198678 Commits

Author SHA1 Message Date
jhb
5fdf8ec777 MFC 261790:
Add support for managing PCI bus numbers.  As with BARs and PCI-PCI bridge
I/O windows, the default is to preserve the firmware-assigned resources.
PCI bus numbers are only managed if NEW_PCIB is enabled and the architecture
defines a PCI_RES_BUS resource type.
- Add a helper API to create top-level PCI bus resource managers for each
  PCI domain/segment.  Host-PCI bridge drivers use this API to allocate
  bus numbers from their associated domain.
- Change the PCI bus and CardBus drivers to allocate a bus resource for
  their bus number from the parent PCI bridge device.
- Change the PCI-PCI and PCI-CardBus bridge drivers to allocate the
  full range of bus numbers from secbus to subbus from their parent bridge.
  The drivers also always program their primary bus register.  The bridge
  drivers also support growing their bus range by extending the bus resource
  and updating subbus to match the larger range.
- Add support for managing PCI bus resources to the Host-PCI bridge drivers
  used for amd64 and i386 (acpi_pcib, mptable_pcib, legacy_pcib, and qpi_pcib).
- Define a PCI_RES_BUS resource type for amd64 and i386.

PR:		197076
2015-04-01 21:48:54 +00:00
jhb
971b9a0eeb MFC 260973:
- Reuse legacy_pcib_(read|write)_config() methods in the QPI pcib driver.
- Reuse legacy_pcib_alloc_msi{,x}() methods in the QPI and mptable pcib
  drivers.
2015-04-01 21:16:33 +00:00
jhb
ea3f65c3bf MFC 278761:
Include OBJT_PHYS VM objects in ELF core dumps. In particular this
includes the shared page allowing debuggers to use the signal trampoline
code to identify signal frames in core dumps.
2015-04-01 19:48:19 +00:00
pfg
ec31b3f59e Revert r280449;
Permit multiple arguments for the nonnull attribute.

For the benefit of anyone that may be struggling to port
FreeBSD to gcc 2.8 (or older) avoid using variadic macros.

MFC	r280700 (partial);

Bring new attribute:
__result_use_check
Causes a warning to be emitted if a caller of the function
with this attribute does not use its return value. This is
known in gcc as "warn_unused_result" but we considered the
original naming unsuitable for an attribute.
2015-04-01 16:17:58 +00:00
gjb
f771564270 Document removal of 10.1-RELEASE QCOW2 virtual machine disk
images from FTP, due to a crash-on-boot problem.

Requested by:	jhb (months ago), bapt (recently)
Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2015-04-01 04:58:08 +00:00
jhb
065ed54942 MFC 278760:
Add two new counters for vnode life cycle events:
- vfs.recycles counts the number of vnodes forcefully recycled to avoid
  exceeding kern.maxvnodes.
- vfs.vnodes_created counts the number of vnodes created by successful
  calls to getnewvnode().
2015-03-31 15:37:24 +00:00
arybchik
5cd4ffb3cf MFC: r280807
sfxge: fix bug in TSO when a DMA segment has both header and data

Sponsored by:   Solarflare Communications, Inc.
2015-03-31 08:05:29 +00:00
arybchik
c3bb525c82 MFC: 279268
sfxge: add to config files

Sponsored by:   Solarflare Communications, Inc.
2015-03-31 08:00:20 +00:00
mav
49119503d2 MFC r280172: Improve ATA and SCSI versions printing.
There is no "SCSI-6" and "ATA-9", but there is "SPC-4" and "ACS-2".
2015-03-31 07:26:39 +00:00
mav
7e7a1cb5ec MFC r280166:
Make ATA power management commands to work on SCSI HBAs via PASS THROUGH.
2015-03-31 07:21:53 +00:00
kib
4826fa033b MFC r280781:
Make it possible for the signal handler to act on #ss.  Load the
canonical user data segment' selector into %ss when calling the
handler.
2015-03-31 01:05:34 +00:00
kib
ae182701d0 MFC r280780:
The #ss fault handler erronously does not check for the fault
originated from the return to usermode. #ss must be handled same as
#np.
2015-03-31 00:59:30 +00:00
kib
cff2ee95c4 MFC r280435:
When mapping an allocated entry, use the entry size, instead of the
requested size.  If tag restrictions caused split entry, its size is
less then requsted.
2015-03-31 00:57:25 +00:00
kib
2f3af4a1a4 MFC r280434:
Assert that the mapping loop makes progress.
2015-03-31 00:55:12 +00:00
jhb
ec839daca2 Revert accidental(?) change in r280455 and do not compile hwpmc statically
into GENERIC by default.  This change is not present in HEAD and was not
made in the two commits to HEAD that r280455 merged.
2015-03-30 16:28:04 +00:00
mav
3e11976044 MFC r280134:
Report ARAT (APIC-Timer-always-running) feature for virtual CPU.

This makes FreeBSD guest to not avoid using LAPIC timer, preferring HPET
due to worries about non-existing for virtual CPUs deep sleep states.

Benchmarks of usleep(1) on guest and host show such extra latencies:
 - 51us for virtual HPET,
 - 22us for virtual LAPIC timer,
 - 22us for host HPET and
 - 3us for host LAPIC timer.
2015-03-30 07:11:49 +00:00
mav
1d0629a91f MFC r280090: Hide virtio features negotiation messages under bootverbose.
Those messages are noisy, but useless for average user.
2015-03-29 07:46:59 +00:00
gjb
92d4896ada MFC r280640:
Crochet sources moved to a new home; update accordingly.

Sponsored by:	The FreeBSD Foundation
2015-03-28 05:11:16 +00:00
mav
122509b53e MFC r273445 (by imp):
Add defines for various FIRST PARTY DMA SEND subcommands.
2015-03-27 09:32:34 +00:00
mav
5169456c99 MFC r270832 (by imp):
Add a few defines and packet types for SATA 3.2 and FPDMA (First Party
DMA).
2015-03-27 09:31:28 +00:00
mav
bfc574567f MFC r279927: Make DIOCGATTR in device mode handle "GEOM::candelete". 2015-03-27 09:28:30 +00:00
mav
713a1f945d MFC r280286: Add comment explaining existing powerd behavior on SMP systems. 2015-03-27 09:01:25 +00:00
mav
9d1b41e02f MFC r280154:
Report that we may have write cache, and that we do support FLUSH.
2015-03-27 08:59:21 +00:00
mav
1240a4ece1 MFC r280133: Increase S/G list size of 32 to 33 entries.
32 entries are not enough for the worst case of misaligned 128KB request,
that made FreeBSD to chunk large quests in odd pieces.
2015-03-27 08:58:30 +00:00
mav
ea196f5fc6 MFC r280126: Pre-allocate one extra request per processing thread.
Processing threads call callbacks before freeing requests.  As result,
new requests may arrive before old ones are freed.
2015-03-27 08:57:38 +00:00
mav
4b55b30394 MFC r280044:
According to Linux and QEMU, s/n equal to buffer is not zero-terminated.

This makes same s/n reported for both virtio and AHCI drivers.
2015-03-27 08:56:44 +00:00
mav
1265da624b MFC r280042: Close potential race on blockif_close().
Reported by:	vangyzen
2015-03-27 08:55:54 +00:00
mav
77dd65195c MFC r280040:
Give AHCI disk serial based on backing file path same as for virtio block.

It is still not good that they may intersect on different hosts, but that
is better then intersecting on the same host.
2015-03-27 08:54:55 +00:00
mav
b0012948cc MFC r280037:
Rewrite virtio block device driver to work asynchronously and use the block
I/O interface.

Asynchronous operation, based on r280026 change, allows to not block virtual
CPU during I/O processing, that on slow/busy storage can take seconds.
Use of recently improved block I/O interface allows to process multiple
requests same time, that improves random I/O performance on wide storages.

Benchmarks of virtual disk, backed by ZVOL on RAID10 pool of 4 HDDs, show
~3.5 times random read performance improvements, while no degradation on
linear I/O.  Guest CPU usage during test dropped from 100% to almost zero.
2015-03-27 08:53:59 +00:00
mav
aaa4bfa294 MFC r280026, r280041:
Modify virtqueue helpers added in r253440 to allow queuing.

Original virtqueue design allows queued and out-of-order processing, but
helpers added in r253440 suppose only direct blocking in-order one.
It could be fine for network, etc., but it is a huge limitation for storage
devices.
2015-03-27 08:52:57 +00:00
mav
3cab0e3831 MFC r280004: Give block I/O interface multiple (8) execution threads.
On parallel random I/O this allows better utilize wide storage pools.
To not confuse prefetcher on linear I/O, consecutive requests are executed
sequentially, following the same logic as was earlier implemented in CTL.

Benchmarks of virtual AHCI disk, backed by ZVOL on RAID10 pool of 4 HDDs,
show ~3.5 times random read performance improvements, while no degradation
on linear I/O.
2015-03-27 08:51:20 +00:00
mav
3505e1d0e9 MFC r279987: Add checksums to identify data and NCQ command error log. 2015-03-27 08:50:26 +00:00
mav
22ec3a9f70 MFC r279979: Slightly polish virtual AHCI CD reporting. 2015-03-27 08:49:33 +00:00
mav
c9d7a5b073 MFC r279977: Fix NOP and IDLE commands for virtual AHCI disks. 2015-03-27 08:48:44 +00:00
mav
b30732f21d MFC r279976: Add support for NCQ variant of DSM TRIM for virtual AHCI disks.
The code is not really tested yet due to lack of initiator support.
2015-03-27 08:47:54 +00:00
mav
adad7a7d84 MFC r279975: Improve NCQ errors reporting for virtual AHCI disks.
While this implementation is still not perfect, previous was just broken.
2015-03-27 08:47:02 +00:00
mav
e0d0bd28e8 MFC r279968: Remove incorrect SERR register setting.
At this point we have nothing to report through that register.
2015-03-27 08:46:12 +00:00
mav
0bcdb239fd MFC r279967: Change prdbc value reporting. 2015-03-27 08:44:58 +00:00
mav
f96653efd8 MFC r279965: Polish AHCI disk identify data and fix speed negotiation. 2015-03-27 08:43:45 +00:00
mav
f4f616ce8b MFC r279960:
Add support for PIO variants of READ/WRITE commands for AHCI disks.

AHCI API hides all PIO specifics, so this functionality is almost free.
2015-03-27 08:42:55 +00:00
mav
989c57f51c MFC r279975: Use ahci_write_fis_d2h() for commands completion. 2015-03-27 08:41:49 +00:00
ken
2052788664 MFC revision 280463
------------------------------------------------------------------------
  r280463 | ken | 2015-03-24 15:42:28 -0600 (Tue, 24 Mar 2015) | 5 lines

  Remove some #if 0'ed code that apparently confuses cscope.

  Requested by:	Peter Xu <xzpeter@gmail.com>
  MFC after:	3 days

  ------------------------------------------------------------------------

Sponsored by:	Spectra Logic
2015-03-27 00:42:51 +00:00
ae
159c9364d9 MFC r280236:
To avoid a possible race, release the reference to ifa after return
  from nd6_dad_na_input().
2015-03-26 18:44:59 +00:00
emaste
ad6d8839ca MFC r270572: drm/i915: Disable the build of i915 on PC98
This module is of no use on this platform.
2015-03-26 17:51:11 +00:00
kib
6414d2bba4 MFC r280254:
Provide definitions for all descriptors types in the DMAR invalidation
queue.
2015-03-26 10:44:16 +00:00
hselasky
bc8d9c80f5 MFC r280262 and r280263:
Add more known bugs to the USB audio manual page.
2015-03-26 10:25:15 +00:00
mav
457dafa988 MFC r280249: Add camcontrol subcommands to control APM and AAM levels.
Sponsored by:	iXsystems, Inc.
2015-03-26 08:38:53 +00:00
mav
40ede50928 MFC r279913: Fix couple BIO_DELETE bugs in geom_mirror.
Do not report GEOM::candelete if none of providers support BIO_DELETE.
If consumer still requests BIO_DELETE, report error instead of hanging.
2015-03-26 08:36:08 +00:00
yongari
2f25ad094c MFC r279903,279941:
Add RTL8211F gigabit PHY support.

  PR:	197265
2015-03-26 05:44:21 +00:00
yongari
a9edaae369 MFC r279223:
Correct a typo.
2015-03-26 05:17:20 +00:00