| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
interrupt. If we want to use link state change interrupt ste(4)
should also implement auto-negotiation complete handler as well as
various PHY access handling. Now link state change is handled by
mii(4) polling so it will automatically update link state UP/DOWN
events which in turn make ste(4) usable with lagg(4).
r199559 added a private timer to drive watchdog and the timer also
used to drive MAC statistics update. Because the MAC statistics
update is called whenever statistics counter reaches near-full, it
drove watchdog timer too fast such that it caused false watchdog
timeouts under heavy TX traffic conditions.
Fix the regression by separating ste_stats_update() from driving
watchdog timer and introduce a new function ste_tick() that handles
periodic job such as driving watchdog, MAC statistics update and
link state check etc.
While I'm here clear armed watchdog timer in ste_stop().
|
|
|
|
| |
PR: kern/140251
|
|
|
|
|
|
|
| |
link state and PHY related information.
Remove ste_link and ste_one_phy variable of softc as it's not used
anymore.
While I'm here add IFF_DRV_RUNNING check in ste_start_locked().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and remove all O(N) sequences from kernel critical sections in ipfw.
In detail:
1. introduce a IPFW_UH_LOCK to arbitrate requests from
the upper half of the kernel. Some things, such as 'ipfw show',
can be done holding this lock in read mode, whereas insert and
delete require IPFW_UH_WLOCK.
2. introduce a mapping structure to keep rules together. This replaces
the 'next' chain currently used in ipfw rules. At the moment
the map is a simple array (sorted by rule number and then rule_id),
so we can find a rule quickly instead of having to scan the list.
This reduces many expensive lookups from O(N) to O(log N).
3. when an expensive operation (such as insert or delete) is done
by userland, we grab IPFW_UH_WLOCK, create a new copy of the map
without blocking the bottom half of the kernel, then acquire
IPFW_WLOCK and quickly update pointers to the map and related info.
After dropping IPFW_LOCK we can then continue the cleanup protected
by IPFW_UH_LOCK. So userland still costs O(N) but the kernel side
is only blocked for O(1).
4. do not pass pointers to rules through dummynet, netgraph, divert etc,
but rather pass a <slot, chain_id, rulenum, rule_id> tuple.
We validate the slot index (in the array of #2) with chain_id,
and if successful do a O(1) dereference; otherwise, we can find
the rule in O(log N) through <rulenum, rule_id>
All the above does not change the userland/kernel ABI, though there
are some disgusting casts between pointers and uint32_t
Operation costs now are as follows:
Function Old Now Planned
-------------------------------------------------------------------
+ skipto X, non cached O(N) O(log N)
+ skipto X, cached O(1) O(1)
XXX dynamic rule lookup O(1) O(log N) O(1)
+ skipto tablearg O(N) O(1)
+ reinject, non cached O(N) O(log N)
+ reinject, cached O(1) O(1)
+ kernel blocked during setsockopt() O(N) O(1)
-------------------------------------------------------------------
The only (very small) regression is on dynamic rule lookup and this will
be fixed in a day or two, without changing the userland/kernel ABI
Supported by: Valeria Paoli
MFC after: 1 month
|
|
|
|
| |
cycle.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Sorted includes and added missing header files.
o Added basic endianness support. In theory ste(4) should work on
any architectures.
o Remove the use of contigmalloc(9), contigfree(9) and vtophys(9).
o Added 8 byte alignment limitation of TX/RX descriptor.
o Added 1 byte alignment requirement for TX/RX buffers.
o ste(4) controllers does not support DAC. Limit DMA address space
to be within 32bit address.
o Added spare DMA map to gracefully recover from DMA map failure.
o Removed dead code for checking STE_RXSTAT_DMADONE bit. The bit
was already checked in each iteration of loop so it can't be true.
o Added second argument count to ste_rxeof(). It is used to limit
number of iterations done in RX handler. ATM polling is the only
consumer.
o Removed ste_rxeoc() which was added to address RX stuck issue
(cvs rev 1.66). Unlike TX descriptors, ST201 supports chaining
descriptors to form a ring for RX descriptors. If RX descriptor
chaining is not supported it's possible for controller to stop
receiving incoming frames once controller pass the end of RX
descriptor which in turn requires driver post new RX
descriptors to receive more frames. For TX descriptors which
does not support chaning, we exactly do manual chaining in
driver by concatenating new descriptors to the end of previous
TX chain.
Maybe the workaround was borrowed from other drivers that does
not support RX descriptor chaining, which is not valid for ST201
controllers. I still have no idea how this address RX stuck
issue and I can't reproduce the RX stuck issue on DFE-550TX
controller.
o Removed hw.ste_rxsyncs sysctl as the workaround was removed.
o TX/RX side bus_dmamap_load_mbuf_sg(9) support.
o Reimplemented optimized ste_encap().
o Simplified TX logic of ste_start_locked().
o Added comments for TFD/RFD requirements.
o Increased number of RX descriptors to 128 from 64. 128 gave much
better performance than 64 under high network loads.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
the leading underscores since they are now implemented.
- Implement the tcpi_rto and tcpi_last_data_recv fields in the tcp_info
structure.
Reviewed by: rwatson
MFC after: 2 weeks
|
|
|
|
|
|
|
| |
is run with the mutex held.
Submitted by: rwatson
MFC after: 3 days
|
|
|
|
|
| |
PR: bin/141280
Approved by: des, trasz (mentor)
|
|
|
|
| |
(Fixes "zzz" clash in the whatis(1) database.)
|
|
|
|
|
|
|
|
|
| |
+ in many places, replace &V_layer3_chain with a local
variable chain;
+ bring the counter of rules and static_len within ip_fw_chain
replacing static variables;
+ remove some spurious comments and extern declaration;
+ document which lock protects certain data structures
|
|
|
|
|
|
| |
Comment only, no data changes.
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
| |
zic:
- Fix URL / reference to Calendrical Calculations: Third Edition
libc/stdtime:
- Fix typo in tzfile.5 (no changes in our part)
MFC after: 1 week
|
| |
|
| |
|
|
|
|
| |
Submitted by: YAMAMOTO, Shigeru
|
|
|
|
|
|
| |
- add support for more sample rates
Submitted by: [1] ariff (earlier version), Hans Petter Selasky
|
|
|
|
| |
Submitted by: Paul B Mahol
|
|
|
|
| |
Submitted by: Hans Petter Selasky
|
|
|
|
| |
Submitted by: Hans Petter Selasky
|
|
|
|
| |
then maximal prepared UMA zone size. This fixes crash with MAXPHYS > 128K.
|
|
|
|
|
|
|
|
|
|
| |
This device only appears on the ACPI bus, so isn't caught by the current
entry for it in the uart(4) ISA attachment.
PR: kern/140172
Reviewed by: jhb, marcel
Approved by: ed (mentor)
MFC after: 2 weeks
|
|
|
|
|
|
| |
PR: docs/133186
Approved by: ed (mentor)
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
|
| |
This waits for the requested process(es) to terminate, rather than polling
with an interval of 2 seconds.
If pwait is not available, the old method is used.
PR: conf/132766
Reviewed by: dougb
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
causes additional MSIs messages sent if several ports asked for attention
same time. Time window before clearing is not important, as these interrupts
are level triggered by interrupt source.
|
| |
|
| |
|
|
|
|
|
|
| |
as they are at boot time.
Original concept submitted by: ume
|
| |
|
|
|
|
|
|
|
|
|
| |
to proceed anyway as this most likely mean that the process has been
terminated.
PR: bin/140397
Submitted by: Dan Lukes <dan obluda cz>
MFC after: 1 month
|
|
|
|
|
| |
commented out since 1.1 and has not been present in <sys/systm.h> since at
least 1.1 of that file. It is also not needed in FreeBSD due to SYSINIT().
|
| |
|
| |
|
|
|
|
|
|
| |
PR: bin/140496
Submitted by: Jeremy Huddleston <jeremyhu apple.com>
MFC after: 1 month
|
|
|
|
| |
o Remove register keyword.
|
|
|
|
|
|
| |
PR: bin/140530
Submitted by: Jeremy Huddleston <jeremyhu apple.com>
MFC after: 1 month
|
|
|
|
| |
MFC after: 1 month
|
| |
|
|
|
|
|
|
| |
the results of localtime() instead of using a pthread mutex directly.
MFC after: 1 week
|
|
|
|
| |
Reviewed by: rwatson
|
|
|
|
|
|
|
|
| |
recodring speed.
PR: bin/140530
Submitted by: Alexander Best <alexbestms wwu.de>
MFC after: 1 month
|
|
|
|
|
|
| |
PR: bin/141835
Submitted by: Henning Petersen <henning.petersen t-online.de>
MFC after: 2 weeks
|
|
|
|
|
|
| |
PR: bin/141836
Submitted by: Henning Petersen <henning.petersen at t-online.de>
MFC after: 2 weeks
|
|
|
|
|
| |
OK'ed by: delphij
Approved by: trasz (mentor)
|
|
|
|
|
|
|
|
|
| |
i386-fbsd.c. Add pipe(2) to syscall table to decode it's pointer
argument properly and re-add special handling for pipe(2) return value
to print_syscall_ret().
PR: bin/120870
Approved by: trasz (mentor)
|