| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
While fixing the PF_ANEQ() macro I messed up the parentheses, leading to
compliation warnings with gcc.
Spotted by: ian
Pointy Hat: kp
Notes:
svn path=/head/; revision=289940
|
|
|
|
| |
Notes:
svn path=/head/; revision=289939
|
|
|
|
| |
Notes:
svn path=/head/; revision=289937
|
|
|
|
|
|
|
|
|
|
| |
There is no functional change. The goal is to ease the future update to
Linux 3.8's i915 driver.
MFC after: 2 month
Notes:
svn path=/head/; revision=289936
|
|
|
|
|
|
|
|
|
|
| |
There is no functional change. The goal is to ease the future update to
Linux 3.8's i915 driver.
MFC after: 2 months
Notes:
svn path=/head/; revision=289934
|
|
|
|
| |
Notes:
svn path=/head/; revision=289933
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IPv4 packets (when it should return FALSE). It happens because PF_ANEQ() doesn't
stop if first 32 bits of IPv4 packets are equal and starts to check next 3*32
bits (like for IPv6 packet). Those bits containt some garbage and in result
PF_ANEQ() wrongly returns TRUE.
Fix: Check if packet is of AF_INET type and if it is then compare only first 32
bits of data.
PR: 204005
Submitted by: Miłosz Kaniewski
Notes:
svn path=/head/; revision=289932
|
|
|
|
| |
Notes:
svn path=/head/; revision=289930
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to reset the chancmp and chainaddr MMIO registers to bring the
device back to a working state.
Name the chanerr bits while we're here.
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289912
|
|
|
|
|
|
|
| |
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289911
|
|
|
|
|
|
|
| |
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289910
|
|
|
|
|
|
|
|
|
| |
It doesn't hurt, even if there is nothing to do.
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289909
|
|
|
|
|
|
|
|
|
| |
To enable controlled testing.
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289908
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We only need to borrow a mutex for the drain sleep and the 0->1
transition, so just reuse an existing one for now.
The wchan is arbitrary. Using refcount itself would have required
__DEVOLATILE(), so use the lock's address instead.
Different uses are tagged by kind, although we only do anything with
that information in INVARIANTS builds.
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289907
|
|
|
|
|
|
|
|
|
|
| |
Callers should have acquired this lock when they invoked ioat_acquire()
before issuing operations. Assert it is held.
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289906
|
|
|
|
|
|
|
|
|
|
|
| |
This is still the worst possible way to allocate memory if it will ever
be under pressure, but at least it won't deadlock.
Suggested by: WITNESS
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289905
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pull out the timer callout delay into IOAT_INTR_TIMO and shorten it
considerably (5s -> 100ms). Single operations do not take 5-10 seconds
and when interrupts aren't working, waiting 100ms sucks a lot less than
5s.
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289904
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I couldn't test arge0->arge1 bridging, only arge0 VLAN bridging.
The DIR-825C1 only hooks up arge0 to the switch GMAC0 and so
you need to abuse VLANs to test.
Tested:
* DIR-825C1 (AR9344)
Notes:
svn path=/head/; revision=289898
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the temporary file to vers.c at the end of the script
The previous logic wrote out to vers.c multiple times, so the file
could be incorrectly interpreted as being completely written out
after one of the echo calls with recursive make, when in reality it
was only partially written.
Also, in the event the build was interrupted when creating vers.c
(small race window), it would have a leftover file that needed to
be cleaned up before resuming the build.
MFC after: 3 weeks
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289896
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pager. It is enough to execute VOP_BMAP() once to obtain both the
disk block address for the requested page, and the before/after limits
for the contiguous run. The clipping of the vm_page_t array passed to
the vnode_pager_generic_getpages() and the disk address for the first
page in the clipped array can be deduced from the call results.
While there, remove some noise (like if (1) {...}) and adjust nearby
code.
Reviewed by: alc
Discussed with: glebius
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 3 weeks
Notes:
svn path=/head/; revision=289895
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ordered with the MFENCE instruction. Similar weak guarantees are also
specified by the AMD APM vol. 3 rev. 3.22. x86 pmap methods
pmap_invalidate_cache_range() and pmap_invalidate_cache_pages() braced
CLFLUSH loop with MFENCE both before and after the loop.
In the revision 56 of SDM, Intel stated that all existing
implementations of CLFLUSH are strict, CLFLUSH instructions execution
is ordered WRT other CLFLUSH and writes. Also, the strict behaviour
is made architectural.
A new instruction CLFLUSHOPT (which was documented for some time in
the Instruction Set Extensions Programming Reference) provides the
weak behaviour which was previously attributed to CLFLUSH.
Use CLFLUSHOPT when available. When CLFLUSH is used on Intel CPUs, do
not execute MFENCE before and after the flushing loop.
Reviewed by: alc
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/head/; revision=289894
|
|
|
|
|
|
|
| |
way. This code should now work for all arm versions v4 thru v7.
Notes:
svn path=/head/; revision=289893
|
|
|
|
|
|
|
|
| |
functions. This will make it possible to use the same busdma code for all
arm platforms v4 thru v7.
Notes:
svn path=/head/; revision=289892
|
|
|
|
|
|
|
|
|
| |
Reviewed by: kevlo
Approved by: adrian (mentor)
Differential Revision: https://reviews.freebsd.org/D3988
Notes:
svn path=/head/; revision=289891
|
|
|
|
| |
Notes:
svn path=/head/; revision=289890
|
|
|
|
|
|
|
|
|
|
| |
- Plugging another memory leak inside the destructor.
Reviewed by: matk
MFC after: 3 weeks
Notes:
svn path=/head/; revision=289888
|
|
|
|
|
|
|
|
|
| |
is a dcache invalidate to point of coherency just like dcache_inv_poc(), but
a slightly different version specific to dma operations. Elaborate the
comment about how and why it's different.
Notes:
svn path=/head/; revision=289887
|
|
|
|
| |
Notes:
svn path=/head/; revision=289886
|
|
|
|
|
|
|
|
|
|
| |
Broken when it was removed from the macro in r289867.
Pointy-hat: markj
Sponsored by: EMC / Isilon Storage Division
Notes:
svn path=/head/; revision=289884
|
|
|
|
|
|
|
|
|
| |
Now 24xx and above chips support full 8-byte LUN address space.
Older FC chips may support up to 16K LUNs when firmware allows.
Tested in both initiator and target modes for 23xx, 24xx and 25xx.
Notes:
svn path=/head/; revision=289882
|
|
|
|
|
|
|
|
| |
CTL itself still lives in flat LUN space, but it can generate extended
numbers if CAM SIM reports such capability.
Notes:
svn path=/head/; revision=289881
|
|
|
|
|
|
|
| |
We have CTL now, which is real and much more functional then this joke.
Notes:
svn path=/head/; revision=289877
|
|
|
|
|
|
|
| |
Though CAM still does not send any requests that would require those.
Notes:
svn path=/head/; revision=289875
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=289867
|
|
|
|
| |
Notes:
svn path=/head/; revision=289865
|
|
|
|
| |
Notes:
svn path=/head/; revision=289864
|
|
|
|
|
|
|
|
|
| |
per-map. The per-tag scheme is not safe, and a mutex can't be used to
protect it because the mapping routines can't sleep. Code brought in
from armv6 implementation.
Notes:
svn path=/head/; revision=289862
|
|
|
|
|
|
|
|
| |
M_BUSDMA for allocations of metadata (tags, maps, segment tracking lists),
and M_BOUNCE for bounce pages.
Notes:
svn path=/head/; revision=289858
|
|
|
|
|
|
|
|
| |
M_BUSDMA for allocations of metadata (tags, maps, segment tracking lists),
and M_BOUNCE for bounce pages.
Notes:
svn path=/head/; revision=289857
|
|
|
|
| |
Notes:
svn path=/head/; revision=289855
|
|
|
|
|
|
|
|
| |
This code lived in the projects/armv6 branch when that change got applied
to all the other arches.
Notes:
svn path=/head/; revision=289854
|
|
|
|
|
|
|
|
|
|
| |
This was probably missed because FreeBSD/arm64 did not yet support
modules when aarch64 support was added to hwpmc(4).
Submitted by: andrew
Notes:
svn path=/head/; revision=289853
|
|
|
|
| |
Notes:
svn path=/head/; revision=289852
|
|
|
|
|
|
|
|
|
|
|
| |
The goal is to make these two files cosmetically alike so that the actual
implementation differences are visible. The only changes which aren't
spaces<->tabs and rewrapping and reindenting lines are a couple fields
shuffled around in the tag and map structs so that everything is in the same
order in both versions (which should amount to no functional change).
Notes:
svn path=/head/; revision=289851
|
|
|
|
|
|
|
|
|
|
|
| |
This change allows to decode respective functions in isp(4) in target mode
and pass them through CAM to CTL. Unfortunately neither CAM nor isp(4)
support returning response info for those task management functions now.
On the other side I just have no initiator to test this functionality.
Notes:
svn path=/head/; revision=289843
|
|
|
|
|
|
|
|
| |
Approved by: adrian (mentor)
Differential Revision: https://reviews.freebsd.org/D3992
Notes:
svn path=/head/; revision=289841
|
|
|
|
| |
Notes:
svn path=/head/; revision=289838
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using unmapped IO is really beneficial when running inside of a VM,
since it avoids IPIs to other vCPUs in order to invalidate the
mappings.
This patch adds unmapped IO support to blkfront. The following tests
results have been obtained when running on a Xen host without HAP:
PVHVM
3165.84 real 6354.17 user 4483.32 sys
PVHVM with unmapped IO
2099.46 real 4624.52 user 2967.38 sys
This is because when running using shadow page tables TLB flushes and
range invalidations are much more expensive, so using unmapped IO
provides a very important performance boost.
Sponsored by: Citrix Systems R&D
MFC after: 2 weeks
X-MFC-with: r289834
Notes:
svn path=/head/; revision=289836
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The implementation of bus_dmamap_load_ma_triv currently calls
_bus_dmamap_load_phys on each page that is part of the passed in buffer.
Since each page is treated as an individual buffer, the resulting behaviour
is different from the behaviour of _bus_dmamap_load_buffer. This breaks
certain drivers, like Xen blkfront.
If an unmapped buffer of size 4096 that starts at offset 13 into the first
page is passed to the current _bus_dmamap_load_ma implementation (so the ma
array contains two pages), the result is that two segments are created, one
with a size of 4083 and the other with size 13 (because two independant
calls to _bus_dmamap_load_phys are performed, one for each physical page).
If the same is done with a mapped buffer and calling _bus_dmamap_load_buffer
the result is that only one segment is created, with a size of 4096.
This patch relegates the usage of bus_dmamap_load_ma_triv in x86 bounce
buffer code to drivers requesting BUS_DMA_KEEP_PG_OFFSET and implements
_bus_dmamap_load_ma so that it's behaviour is the same as the mapped version
(_bus_dmamap_load_buffer). This patch only modifies the x86 bounce buffer
code, other arches are left untouched.
Reviewed by: kib, jah
Differential Revision: https://reviews.freebsd.org/D888
Sponsored by: Citrix Systems R&D
Notes:
svn path=/head/; revision=289834
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From the (now removed) comment:
* It is unclear in some cases if the bit is implementation defined.
* The Foundation Model and QEMU disagree on if the IL bit should
* be set when we are in a data fault from the same EL and the ISV
* bit (bit 24) is also set.
Instead of adding even more special cases just remove the assertion.
Approved by: andrew
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/head/; revision=289833
|