MFC 209946:
- Add missing locking around flushing of an NFS node's attribute cache
in the NMODIFIED case of nfs_open().
- Cosmetic tweak to simplify an expression in nfs_lookup().
New relnotes item:
ddb(4) show ifnets/ifnet/lltables/lltable/llentry,
ddb(4) show vnet_sysinit/vnet_sysuninit,
UltraSPARC IV/IV+ support [sparc64],
if_bridge(4) MTU handling fix,
bwn(4) added,
em(4) 7.0.0,
igb(4) 1.9.3,
ixgbe(4) 2.1.7,
msk(4) interrupt moderation,
mxge(4) 1.4.50 firmware,
re(4) performance fix,
run(4) added,
sge(4) added,
flowtable IPv6 support,
LINKSTATE capability flag added to ifnet,
ipfw(4) improvements: ipfw0, IPv6 support of "me", IPv6 keep-alive fix,
lookup match option, ip.fw.one_pass fix,
memory alignment issue in ng_ppp and ng_ksocket fixed,
tap(4) now supports link state report,
more drivers to IFCAP_VLAN_HWTSO support list,
cam(3) ATA transport PUIS support,
glabel(8) per-FS enable/disable knobs,
gmultipath(8) destroy, rotate, getactive commands,
gsched(8) added,
msdosfs(5) MPSAFE,
UFS NFSv4 ACL support,
chgrp(1) and chown(8) -x flag support,
fnmatch(3) bug fix,
indent(1) -ta flag support,
libz optimization on i386/amd64,
netstat(1) -f netgraph bug fix,
/tmp/.snap now in $daily_clean_tmps_ignore used in periodic(8) script,
sed(1) -r flag (equivalent to -E) added,
db(3) style database of /etc/services added,
rc.d/ip6fw deprecated and integrated into rc.d/ipfw,
rc.c/tmp now uses a unique dirname for /tmp/.diskless,
rc.d/ubthidhci added,
ACPI-CA 20100304,
ISC BIND 9.6.2-P1,
netcat 4.7,
OpenSSH 5.4p1, and
tzdata2010i.
Fix two long-standing line wrapping bugs in VGA renderer for pixel mode.
Font size may be smaller than 16 and logical scan line may be larger than
the displayed scan line.
ken [Thu, 22 Jul 2010 15:38:36 +0000 (15:38 +0000)]
MFC 209599, 209960:
r209960 | marius
- Make the maxsize parameter of the data buffer DMA tag match maxio, which
was missed in r209599.
Reported and tested by: Michael Moll
- Declare mpt_dma_buf_alloc() static just like mpt_dma_buf_free(), both are
used in mpt.c only.
Reviewed by: ken
MFC after: r209599
r209599 | ken
Change the mpt driver to allow larger I/O sizes.
The mpt driver previously didn't report a 'maxio' size to CAM, and so the
da(4) driver limited I/O sizes to DFLTPHYS (64K) by default. The number
of scatter gather segments allowed, as reported to busdma, was
(128K / PAGE_SIZE) + 1, or 33 on architectures with 4K pages.
Change things around so that we wait until we've determined how many
segments the adapter can support before creating the busdma tag used for
buffers, so we can potentially support more S/G segments and therefore
larger I/O sizes.
Also, fix some things that were broken about the module unload path. It
still gets hung up inside CAM, though.
mpt.c: Move some busdma initialization calls in here, and call
them just after we've gotten the IOCFacts, and know how
many S/G segments this adapter can support.
mpt.h: Get rid of MPT_MAXPHYS, it is no longer used.
Add max_cam_seg_cnt, which is used to report our maximum
I/O size up to CAM.
mpt_cam.c: Use max_cam_seg_cnt to report our maximum I/O size to CAM.
Fix the locking in mpt_cam_detach().
mpt_pci.c: Pull some busdma initialization and teardown out and put
it in mpt.c. We now delay it until we know many scatter
gather segments the adapter can support, and therefore
how to setup our busdma tags.
mpt_raid.c: Make sure we wake up the right wait channel to get the
raid thread to wake up when we're trying to shut it down.
Update some release version numbers. The patch is based on the one
from the PR, but the version numbers reflect the newer ones from
http://security.freebsd.org/#sup
Fix an error in the EXAMPLES section of getopt(1), which is based on
the same fix present in NetBSD.
Note: the getopt man page contains more antique information like this.
An overhaul of the man page and/or sync with NetBSD would be the right
thing to do. But since this is out of the scope of the PR, I'll leave
it as it is for now.
PR: docs/133118
Submitted by: Oleg A. Mamontov (oleg at mamontov dot net)
Discussed with: jilles@
Add relnotes item for 8.1R (first round):
ddb(4) show mount improved,
fcntl(2) F_READAHEAD and F_RDAHEAD added,
lindev(4) added,
more dtrace probes,
SMP support in PowerPC G5,
ULE %CPU fix,
VIMAGE + SCTP build fix,
vfs.root.mountfrom space-separated list support added,
loader(8) memory range selection improved,
zfsloader added,
zfsboot and gptboot added,
adb(4) supports taps on ADB touchpad,
apt(4) added,
uart(4) NetMos NM9865 support added,
bge(4) 5761, 5784, 57780 support added,
cxgb(4) updated to T3 firmware 7.8.0,
msk(4) 88E8042, 88E8057 and DGE-560SX support added,
re(4) unnecessary reinitialization eliminated,
tsec(4) now supports ALTQ,
urtw(4) now supports RTL8187B,
net.inet.ipcomp.ipcomp_enable=1 by default,
IPV6_V6ONLY by default for IPv6 sockets in Linux emulation,
gmirror(8) priority change support,
gmirror(8) "load" balancing algorithm improved and now used as default,
"option ATA_CAM" added,
ata(4) fix for interrupt storms/command timeouts added,
ata(4) umass support removed,
ahd(4) error counter improved,
cam(3) SATA/PATA support improved,
bsnmpd(1) high CPU load issue fixed,
bzip2(1) multi-session bzip2 file handling fixed,
ee(1) crach fixed,
factor(6) performance issue fixed,
fetch(1) NO_PROXY handling fixed,
ifconfig(8) now supports NDP flag handling,
ntpd(8) no longer attempts to bind IPv6 anycast addresses,
unifdef(1) updated to 1.188,
ENOTCAPABLE new errno,
rc.d/static_arp added, and
ISC BIND 9.6.1-P2.
MFC r209388:
Remove G_TYPE_ASCLBA type and replace it with G_TYPE_STRING in gpart.
Move code that converts params from humanized numbers to sectors count
to subr.c and adjust comment.
Add post-processing for "size" and "start offset" params in gpart,
now they are properly converted to sectors count with known sector size
that can be greater that 512 bytes.
Also replace "unsigned long long" type to "off_t" for unify code since
it used for medium size in libgeom(3) and DIOCGMEDIASIZE ioctl.
PR: bin/146277
MFC r209392:
Check for overflow before it occurs. Also add check for
negative numbers.
- Move i386-inherited logic of building ACPI headers for acpi_wakeup.c into
better places and remove intermediate makefile and shell scripts. This
makes parallel kernel build little bit safer for amd64.
- Make SMP code path in acpi.c conditional at run-time.
- Define SMP unconditionally for amd64 and remove opt_global.h from SRCS in
sys/modules/acpi/acpi/Makefile. Note it is done just for correctness sake
because we do not build, ship, or support acpi.ko on amd64.
- According to ACPICA User Guide and Programmer Reference, the read data
must be zero extended to fill the 32-bit or 64-bit return value even if
the bit width of the port or location is less than 32 or 64.
- Use pmap_mapdev()/pmap_unmapdev() to map device memory instead of using
AcpiOsMapMemory()/AcpiOsUnmapMemory() (-> pmap_mapbios()/pmap_unmapbios())
for AcpiOsReadMemory() and AcpiOsWriteMemory(). Although they do not sound
too obvious, these functions are exclusively used to access memory mapped
IO in ACPICA.
- Remove 64-bit access from AcpiOsReadMemory() and AcpiOsWriteMemory().
These functions do not support 64-bit access. Likewise, return error when
64-bit access is requested for PCI configuration space.
- Simplify AcpiOsReadPort() and AcpiOsWritePort() with iodev_read_*() and
iodev_write_*(). This removes unnecessary uses of temporary macros as well.
There is no functional change after this (verified with md5(1) on amd64).
Sync. printf() of libstand(3) with sys/kern/subr_prf.c.
CVS r1.94 jhb:
Cast the integer read as the first argument for %b to an unsigned integer
so it's value is not sign extended when assigned to the uintmax_t variable
used internally by printf. For example, if bit 31 is set in the cpuid
feature word, then %b would print out the initial value as a 16 character
hexadecimal value. Now it only prints out an 8 character value.
CVS r1.109 njl:
Add support for 'h' and 'hh' modifiers for printf(9).
CVS r1.117 phk:
If we ignore an unknown % sequence, we must stop interpreting the remaining
% arguments because the varargs are now out of sync and there is a risk that
we might for instance dereference an integer in a %s argument.
SVN r209836 jkim:
Implement optional 'precision' for numbers. Previously, it was parsed but
ignored. Some third-party modules (e.g., ACPICA) prefer this format over
zero padding flag '0'.
Implement optional 'precision' for numbers. Previously, it was parsed but
ignored. Some third-party modules (e.g., ACPICA) prefer this format over
zero padding flag '0'.
- Suspend screen updates when the video controller is powered down.
- Let the first device suspend and the last device resume syscons(4).
- Do not attempt to switch to the same VTs between suspend and resume.
- When we are not switching VTs, just mark all buffer to be updated.
- Fix some style(9) nits.
Fix a panic brought about by writing an MSR without a proper mask.
All of the necessary wrmsr calls are now preceded by a rdmsr
and we leave the reserved bits alone.
Document the bits in the relevant registers for future reference.
Mention the radiolist option in the man page. It is being listed when
dialog(1) is run without arguments and works as expected. Therefore,
it should be part of the manual as well.
Note: dialog(1) has not been updated for many years and is not actively
maintained at the moment.
MFC r203691:
- Update documentation for the iwn and iwnfw drivers: they support the
1000, 5150, 6000 and 6050 devices too, with firmware modules for the
- 4965, 1000, 5000, 5150 and 6000.
- Add documentation for mwl and all the wireless firmware drivers.
MFC r210168:
Make legacy ATA emulation detection more strict. This should fix false
positive legacy detection and attach failure/panic for Marvell 88SX6141
controller and potentially some others.
Don't import parameter values in jail_getv, except for the search key.
Remove the internal jailparam_vlist, in favor of using variants of its
logic separately in jail_setv and jail_getv.
Free the temporary parameter list and exported values in jail_setv
and jail_getv.
MFC r209932:
For xsi_sigpause(3), remove the supplied signal from the process mask
during sigpause(2) call. It was backward.
Check that the signal number is valid.
MFC r209955:
When switching the thread from the processor, store %dr7 content
into the pcb before disabling watchpoints. Otherwise, when the
thread is restored on a processor, watchpoints are still disabled.
mm [Sun, 18 Jul 2010 07:59:55 +0000 (07:59 +0000)]
MFC r209275:
Import latest ARC change from OpenSolaris:
- large ghost eviction causes high write latency
- arc_adjust might adjust MRU unnecessarily
- arc_adapt can lead to wild arc_p adjustment
MFC r209664:
Add ata(4) ability to limit initial ATA mode for devices via device hints.
After boot this mode can be changed with atacontrol/camcontrol as usual.
It works for both legacy and ATA_CAM wrapper mode.
MFC r209744:
ATA device reset starts probe sequence from the beginning. If reset caused
by timeout/error of one of probe commands, process may continue infinitely.
Make CAM ATA more robust to faulty devices and false positive detections,
abort probe after two restarts on timeouts or ten on other errors.
MFC r209883, r209944:
Make interrupt handler check that CAM bus initialization completed before
touching it. It fixes possible panic during controller attach in ATA_CAM
mode.
While there, slightly improve attach errors handling.
MFC r209884:
If ata_sata_phy_reset() failed and ata_generic_reset() is not called, mark
channel as having no devices connected. This improves hot-unplug operation
on legacy-emulating SATA controllers.
MFC r209872:
Make hw.ata.ata_dma_check_80pin tunable affect not only device side, but
also controller side cable checks. Make respective sysctl writable.
Fix reading of empty fifolog files. When we don't have anything
to inflate, skip the rest of the fifolog reader code to avoid
hitting the assert about Z_OK a bit further down.
Predict the date we'll be ready to announce 8.1-RELEASE. While here
add the entry for 8.0-RELEASE which was added to releng/8.0/UPDATING
during the 8.0-RELEASE cycle but not to stable/8/UPDATING at that time.
MFC r209664:
Add ata(4) ability to limit initial ATA mode for devices via device hints.
After boot this mode can be changed with atacontrol/camcontrol as usual.
It works for both legacy and ATA_CAM wrapper mode.
Enhance config to handle MACHINEs with multiple architectures:
- Passing -m to config will now print the MACHINE and MACHINE_ARCH
given in the passed kernel configuration file and then exit.
- If an option is defined in options.MACHINE with the same name as the
architecture of the kernel being configured, that option will be
considered set. This allows conditional compilation based on CPU
architecture.
o make cmd scoped to the whole do_rules function, since it really is
scoped to the whole fucnion. Making it static was the wrong way to
fix referencing it outside of the block in which it was declared
(and conforms to the style of the rest of the file).
o remove a couple of meaningless blank lines
o properly wrap one line.
Partially MFC 209592:
Add a tdksignal() routine that mirrors pksignal() except that it accepts a
thread instead of a process. As an extension, if a NULL ksiginfo_t is
passed in, setup a ksiginfo_t on the stack similar to psignal(). This
provides semantics matching the new tdsignal() function in 9 while
preserving the existing ABI.
MFC 208507,208556,208621:
Add support for corrected machine check interrupts. CMCI is a new local
APIC interrupt that fires when a threshold of corrected machine check
events is reached. CMCI also includes a count of events when reporting
corrected errors in the bank's status register. Note that individual
banks may or may not support CMCI. If they do, each bank includes its own
threshold register that determines when the interrupt fires. Currently
the code uses a very simple strategy where it doubles the threshold on
each interrupt until it succeeds in throttling the interrupt to occur
only once a minute (this interval can be tuned via sysctl). The threshold
is also adjusted on each hourly poll which will lower the threshold once
events stop occurring.
MFC 208787:
Assert that the thread lock is held in sched_pctcpu() instead of
recursively acquiring it. All of the current callers already hold the
lock.
MFC 209588:
- The ETIMEDOUT error applies to pthread_timedjoin_np(), not pthread_join().
- Tweak wording in history section for pthread_timedjoin_np().
ed [Tue, 13 Jul 2010 11:04:46 +0000 (11:04 +0000)]
MFC r209718:
Fix a race condition, where a TTY could be destroyed twice.
There are special cases where tty_rel_free() can be called twice in a
row, namely when closing and revoking the TTY at the same moment. Only
call destroy_dev_sched_cb() once.
MFC r209577, r209761:
- Fix a lock leak in case the ticks wrapped up
- Simplify the logic for handling ticks wrap-ups
- Fix a bug where a thread may be in sleepign state but not on a
sleepqueue chain still.
MFC r209214:
When Emulate3Button is active, do not set select() timeout in states when
it is not needed. No need to kick CPU every 20ms without a purpose.
MFC r209328,r209330:
While we indeed can't precisely measure time spent in C1, we can consider
measured interval as upper bound. It should be more precise then just
assuming 1/(2*hz). For idle CPU it should be quite precise, for busy - not
worse then before.
MFC r208946:
New netgraph node ng_patch(4). It performs data modification of packets
passing through. Modifications are restricted to a subset of C language
operations on unsigned integers of 8, 16, 32 or 64 bit size.
These are: set to new value (=), addition (+=), subtraction (-=),
multiplication (*=), division (/=), negation (= -), bitwise AND (&=),
bitwise OR (|=), bitwise eXclusive OR (^=), shift left (<<=),
shift right (>>=). Several operations are all applied to a packet
sequentially in order they were specified by user.
Submitted by: Maxim Ignatenko <gelraen.ua at gmail.com>
Vadim Goncharov <vadimnuclight at tpu.ru>
Discussed with: net@
MFC r208947:
Fix typo.
MFC r208989:
Style(9) fixes:
* Sort includes
* Replace #define<SPACE> to #define<TAB>
* Split declarations and initializations
* Split long lines
Requested by: kib
MFC r209194:
* Include sys/systm.h for KASSERT()
* Remove unneeded includes and comment
* Replace home made OFFSETOF() macro with standard offsetof()
MFC 208742:
MFamd64: Add a new macro PCPU_XEN_FIELDS to hold XEN-specific per-CPU
fields that is always included in PCPU_MD_FIELDS. The macro is empty for
non-XEN kernels. This avoids duplicating non-XEN per-CPU fields in two
places. While here, remove several unused fields from the XEN-specific
structure.