| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unlike TX interrupt, ST201 does not provide any mechanism to
suppress RX interrupts. ste(4) can generate more than 70k RX
interrupts under heavy RX traffics such that these excessive
interrupts make system useless to process other useful things.
Maybe this was the major reason why polling support code was
introduced to ste(4).
The STE_COUNTDOWN register provides a programmable counter that
will generate an interrupt upon its expiration. We program
STE_DMACTL register to use 3.2us clock rate to drive the counter
register. Whenever ste(4) serves RX interrupt, the driver rearm
the timer to expire after STE_IM_RX_TIMER_DEFAULT time and disables
further generation of RX interrupts. This trick seems to work well
and ste(4) generates less than 8k RX interrupts even under 64 bytes
UDP torture test. Combined with TX interrupts, the total number of
interrupts are less than 10k which looks reasonable on heavily
loaded controller.
The default RX interrupt moderation time is 150us. Users can change
the value at any time with dev.ste.%d.int_rx_mod sysctl node.
Setting it 0 effectively disables the RX interrupt moderation
feature. Now we have both TX/RX interrupt moderation code so remove
loop of interrupt handler which resulted in sub-optimal performance
as well as more register accesses.
|
|
|
|
| |
Implement support for interrupt descriptions.
|
| |
|
|
|
|
| |
like the other architectures do.
|
|
|
|
|
| |
NetBSD rev 1.19.
- Make the functions match their prototypes regarding static.
|
|
|
|
|
|
| |
M5229 appears to be once again fixed. If this happens to return
we probably should disable ATAPI DMA in ataacerlabs(4) instead
just like the Linux libATA does.
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is already done by evalcommand(), unless special-ness has been removed,
in which case variable assignments should not persist. (These are currently
always special builtins, but this will change later: command builtin,
command substitution.)
This also fixes a memory leak when calling . with variable assignments.
Example:
valgrind --leak-check=full sh -c 'x=1 . /dev/null; x=2'
|
|
|
|
| |
hoping that rest will fit.
|
|
|
|
| |
are missing from NOTES files.
|
|
|
|
|
| |
underlying provider's stripe, multiplied by number of data disks in array,
due to transformation done, as array stripe.
|
|
|
|
|
|
|
|
|
|
|
| |
in intr_execute_handlers(). If we managed to get here without an
associated interrupt controller we have way bigger problems.
While at it predict stray vector interrupts as false as they are
rather unlikely.
- Don't blindly call the clear function of an interrupt controller
when adding a handler in inthand_add() as interrupt controllers
like the one driven by upa(4) are auto-clearing and thus provide
NULL instead.
|
|
|
|
| |
components, hoping others fit, if they are not equal.
|
|
|
|
| |
stripe (optimal access block) size and offset.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Server Return mode, where not all packets would be visible to the load
balancer or gateway.
This commit should be reverted when we merge future pf versions. The
benefit it would provide is that this version does not break any existing
public interface and thus won't be a problem if we want to MFC it to
earlier FreeBSD releases.
Discussed with: mlaier
Obtained from: OpenBSD
Sponsored by: iXsystems, Inc.
MFC after: 1 month
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This brings hwpmc(4) support for 2nd and 3rd generation XScale cores.
Right now it's enabled by default to make sure we test this a bit.
When the time comes it can be disabled by default.
Tested on Gateworks boards.
A man page is coming.
Obtained from: //depot/user/rpaulo/xscalepmc/...
|
| |
|
|
|
|
|
|
|
| |
a bit of a detour we can just iterate through the banks array instead
of having to calculate every offset. This change is inspired by the
powerpc version of this function.
- Add support for the JBus to EBus bridges which hang off of nexus(4).
|
| |
|
|
|
|
|
|
|
|
|
| |
to PCIe bridges.
- Add support for talking the PROM mappings over to the kernel IOTSB
just like we do with the kernel TSB in order to allow OFW drivers
to continue to work.
- Change some members, parameters and variables to unsigned where
more appropriate.
|
| |
|
|
|
|
|
|
|
|
| |
enable IDE I/O" bit which prevents data access traps with revision
0xc8 in Fire-based machines when pci(4) enables PCIM_CMD_PORTEN.
- Like for sun4v also don't add the PCI side of host-PCIe bridges to
the bus on sun4u as they don't have configuration space implement
there either.
|
|
|
|
|
| |
- Add macros to ease the access of device configuration space in
ofw_pcibus_setup_device().
|
|
|
|
|
|
|
|
| |
support to bzip2fs. This fixes problems with loading compressed amd64
kernel modules containing debug symbols.
Submitted by: David Naylor naylor.b.david (gmail)
MFC after: 1 week
|
|
|
|
| |
both sun4u and sun4v.
|
|
|
|
|
| |
ensure that their compilation doesn't break as they are expected
to work as-is now (but aren't actually run-time tested).
|
| |
|
|
|
|
|
| |
this chip isn't MC146818 compatible and requires different handlers
(but which I can't test due to lack of such hardware).
|
|
|
|
|
|
| |
of the interrupt handler in intr_fast() as the handler might clobber
it (no in-tree handler currently does but an upcoming one will).
While at it, tidy the register usage in the interrupt counting code.
|
|
|
|
|
|
|
|
|
|
|
| |
transmitted frames. So request interrupt for every 16th frames. Due
to the limitation of hardware we can't suppress the interrupt as
driver should have to check TX status register. The TX status
register can store up to 31 TX status so driver can't send more
than 31 frames without reading TX status register.
With this change controller would not generate TX completion
interrupt for every frame, so reclaim transmitted frames in
ste_tick().
|
| |
|
|
|
|
|
|
| |
definition was made to access STE_ASICCTL register as 16bits but
ste(4) always access the register as 32bits so it was never used
before.
|
|
|
|
| |
could be accessed with dev.ste.0.stats sysctl node.
|
|
|
|
|
|
|
|
|
|
|
| |
reformatting to avoid unnecessary line breaks, small block
restructuring to avoid unnecessary nesting, replace macros
with function calls, etc.
As a side effect of code restructuring, this commit fixes one bug:
previously, if a realloc() failed, memory was leaked. Now, the
realloc is not there anymore, as we first count how much memory
we need and then do a single malloc.
|
|
|
|
|
|
|
| |
used to return success without respect to the result.
While I'm here use mii_mediachg() in ste_init_locked which allows
driver to use currently configured media. ste_ifmedia_upd() is
supposed to be called whenever user changes current media settings.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Let RX filter handler program promiscuous/multicast filter as
well as broadcasting.
o Remove unnecessary register access.
o Simplify ioctl handler and have set_rxfilter to handle
IFF_PROMISC and IFF_ALLMULTI change instead of directly
programming the controller.
o Removed unnecessary error variable reinitialization in ioctl
handler.
o Add IFF_DRV_RUNNING check before programming multicast filter.
o Configure maximum allowed frame length before enabling MAC.
Datasheet didn't say the exact ordering of programming sequence
but it looks more natural to set maximum allowed frame length
first prior to enabling controller.
|
|
|
|
|
|
|
| |
1ms. Since we switched to memory register mapping make sure to
flush PCI posted write by reading the register again.
While I'm here add additional delays in loop while driver waits the
completion of the reset.
|
|
|
|
| |
reduces number of link state UP/DOWN changes.
|
| |
|
|
|
|
|
|
|
| |
report using "netisr_init" rather than "netisr2", which was the development
name for the project.
MFC after: 3 days
|
| |
|
|
|
|
| |
Also remove some unnecessary headers
|
|
|
|
| |
Also fix the indentation on a few lines.
|
|
|
|
|
| |
the hw.freq.cpu sysctl variable. This can be used by ports that
need to know "the" CPU frequency.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The frequencies are in MHz (i.e. a value of 1000 represents 1GHz). The
frequencies are rounded to the nearest whole MHz.
While here, rename and re-type bus_frequency, processor_frequency and
itc_frequency to bus_freq, cpu_freq and itc_freq and make them static.
As unsigned integers, the hw.freq.cpu sysctl can more easily be made
generic (across all architectures) making porting easier.
MFC after: 3 days
|
| |
|
| |
|