summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Reimplement miibus_statchg method. Don't rely on link state changeyongari2009-12-222-52/+78
| | | | | | | | | | | | | | | | | | | 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().
* Add support for Intel SCH PATA controller.mav2009-12-222-2/+40
| | | | PR: kern/140251
* Introduce sc_flags member variable and use it to keep track ofyongari2009-12-222-12/+11
| | | | | | | 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().
* merge code from ipfw3-head to reduce contention on the ipfw lockluigi2009-12-2212-402/+415
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add minimal dealy while ste(4) is waiting for the end of active DMAyongari2009-12-221-0/+1
| | | | cycle.
* Add bus_dma(9) and endianness support to ste(4).yongari2009-12-222-249/+553
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Removed duplicate usbd_xfer_state(9) link.ru2009-12-222-2/+0
|
* Sort mlinks.ru2009-12-221-66/+66
|
* - Rename the __tcpi_(snd|rcv)_mss fields of the tcp_info structure to removejhb2009-12-223-7/+9
| | | | | | | | | 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
* Don't take the driver mutex in mxge_tick(), as itgallatin2009-12-221-2/+0
| | | | | | | is run with the mutex held. Submitted by: rwatson MFC after: 3 days
* Don't print the archive name with -p and -q options.jh2009-12-221-1/+2
| | | | | PR: bin/141280 Approved by: des, trasz (mentor)
* apm(8) is no longer linked to zzz(8), catch up.ru2009-12-222-30/+17
| | | | (Fixes "zzz" clash in the whatis(1) database.)
* some mostly cosmetic changes in preparation for upcoming work:luigi2009-12-224-92/+89
| | | | | | | | | + 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
* MFV of tzcode2009t, r200833edwin2009-12-223-11/+86
| | | | | | Comment only, no data changes. MFC after: 1 week
* MFV of tzdata2009t, r200831edwin2009-12-222-6/+6
| | | | | | | | | | 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
* Cosmetic fixes.trasz2009-12-221-6/+6
|
* Add missed usb product define in r200826.thompsa2009-12-221-0/+1
|
* add new ID to UFTDI driver.thompsa2009-12-221-0/+1
| | | | Submitted by: YAMAMOTO, Shigeru
* - add support for more than 2 audio channels. [1]thompsa2009-12-221-70/+146
| | | | | | - add support for more sample rates Submitted by: [1] ariff (earlier version), Hans Petter Selasky
* Set correct USB device descriptionthompsa2009-12-221-0/+1
| | | | Submitted by: Paul B Mahol
* Add more OHCI pci ids.thompsa2009-12-221-0/+6
| | | | Submitted by: Hans Petter Selasky
* Add more EHCI pci ids.thompsa2009-12-221-0/+10
| | | | Submitted by: Hans Petter Selasky
* Make graid3 fallback to malloc() when component request size is biggermav2009-12-212-9/+15
| | | | then maximal prepared UMA zone size. This fixes crash with MAXPHYS > 128K.
* Support the tablet in (at least) the Toshiba Portege M200 Tablet PC.gavin2009-12-211-0/+1
| | | | | | | | | | 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
* Grammar and minor tweaks to powerd(8) man page.gavin2009-12-211-4/+5
| | | | | | PR: docs/133186 Approved by: ed (mentor) MFC after: 2 weeks
* rc.subr: Use pwait in wait_for_pids.jilles2009-12-211-1/+1
| | | | | | | | | | 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
* Spell AMD properly.mav2009-12-211-1/+1
|
* Add missing module dependency information.marius2009-12-211-0/+1
|
* Provide and consume missing module dependency information.marius2009-12-216-4/+11
|
* Clear all ports interrupt status bits in single write. Clearing one by onemav2009-12-211-8/+6
| | | | | | 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.
* Add regression test for NFSv4 ACLs on UFS.trasz2009-12-211-0/+86
|
* Sort function prototyes.yongari2009-12-211-39/+38
|
* By popular request, execute rc.d scripts in the same environmentdougb2009-12-212-4/+21
| | | | | | as they are at boot time. Original concept submitted by: ume
* style(9)yongari2009-12-211-100/+100
|
* Don't consider non-existence of a PID file an error, we should be abledelphij2009-12-211-1/+12
| | | | | | | | | 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
* Remove commented out prototype for ifinit(). This prototype has beenjhb2009-12-211-1/+0
| | | | | 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().
* Remove trailing white spaces.yongari2009-12-212-14/+14
|
* s/u_intXX_t/uintXX_t/gyongari2009-12-212-42/+42
|
* Use vsprintf instead of rolling our own.delphij2009-12-211-9/+1
| | | | | | PR: bin/140496 Submitted by: Jeremy Huddleston <jeremyhu apple.com> MFC after: 1 month
* o Remove unnecessary return statement.yongari2009-12-211-30/+2
| | | | o Remove register keyword.
* Use vsscanf instead of rolling our own.delphij2009-12-211-24/+1
| | | | | | PR: bin/140530 Submitted by: Jeremy Huddleston <jeremyhu apple.com> MFC after: 1 month
* K&R -> ANSI prototype.delphij2009-12-211-8/+3
| | | | MFC after: 1 month
* Use ANSI function definations.yongari2009-12-211-87/+34
|
* Use _once() to initialize the pthread key for thread-local storage to holdjhb2009-12-211-14/+14
| | | | | | the results of localtime() instead of using a pthread mutex directly. MFC after: 1 week
* Implement NFSv4 ACL support for UFS.trasz2009-12-2113-92/+620
| | | | Reviewed by: rwatson
* Add support of using environment variable BURNCD_SPEED to specifydelphij2009-12-212-9/+19
| | | | | | | | recodring speed. PR: bin/140530 Submitted by: Alexander Best <alexbestms wwu.de> MFC after: 1 month
* Plug a memory leak.delphij2009-12-211-0/+1
| | | | | | PR: bin/141835 Submitted by: Henning Petersen <henning.petersen t-online.de> MFC after: 2 weeks
* Plug a memory leak.delphij2009-12-211-0/+1
| | | | | | PR: bin/141836 Submitted by: Henning Petersen <henning.petersen at t-online.de> MFC after: 2 weeks
* Cast time_t values to intmax_t and use %jd with printf.jh2009-12-211-5/+5
| | | | | OK'ed by: delphij Approved by: trasz (mentor)
* Remove non-working special case for pipe(2) from amd64-fbsd32.c andjh2009-12-213-26/+8
| | | | | | | | | 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)
OpenPOWER on IntegriCloud