Matthew Dillon [Sat, 11 Jul 2009 22:56:25 +0000 (15:56 -0700)]
vrevoke/single-user - fix more revoke issues.
* vrevoke() no longer clears vp->v_rdev. Doing so interferes with specfs's
ability to call dev_dclose(). Fixing this will allow the regular close
of the vnode to close the underlying device.
Since the revoke code detaches the vnode from any user-visible file
descriptors the vnode will end up being closed the moment the last
referenced to the detached fp goes away.
* kill 1 no longer leaves the syscons in a state where both /dev/ttyv0 and
/dev/console are marked open (due to the above bug). This state would
cause the keyboard to stop working sometimes when dropping into single
user.
* Add dev_drevoke() and friends. This allows a device to do something
when an attempt is made to revoke() the related vnode.
TTY and PTY devices now attempt to break out of any ttysleep() operation
(such as when processes are blocked in read()). This is advisory and
if it fails to break a process out of a blocked condition that process
will still detach after the blocked condition is resolved normally.
Matthew Dillon [Sat, 11 Jul 2009 15:25:03 +0000 (08:25 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Sat, 11 Jul 2009 15:22:02 +0000 (08:22 -0700)]
getdevpath - add _PATH_DEVTAB_PATHS
Reminded-by: Sascha Wildner <saw@online.de>
Sepherosa Ziehau [Sat, 11 Jul 2009 08:21:17 +0000 (16:21 +0800)]
Get rid of PCI_MAP_FIXUP and opt_pci.h
Alexander Polakov [Tue, 9 Jun 2009 08:59:33 +0000 (12:59 +0400)]
ACPI: Make acpi_pci* compile; they are not used yet.
Submitted-by: Alexander Polakov <polachok@gmail.com> w/ modification
Sepherosa Ziehau [Fri, 10 Jul 2009 11:12:51 +0000 (19:12 +0800)]
Sepherosa Ziehau [Fri, 10 Jul 2009 08:10:08 +0000 (16:10 +0800)]
MPTable PCI interrupt routing: Verbose logging if an ISA IRQ is to be tried.
Sepherosa Ziehau [Fri, 10 Jul 2009 07:29:24 +0000 (15:29 +0800)]
Use same interrupt vector handler for fast/slow interrupt handlers
Slow interrupt vector handler is removed. Fast interrupt vector handler,
ithread_fast_handler(), now schedules slow interrupt handlers if necessary:
o No fast interrupt handlers are registered
o Mixed fast and slow interrpt handlers are registered
o Non-MPSAFE fast interrupt handlers could not get BGL
i386/amd64: gd_ipending field in mdglobaldata is revoked, which is only
used by slow interrupt vector handler.
ithread_fast_handler()'s invoking convetion is changed:
- ithead_fast_handler() must be called with critical section being held
- Callers of ithead_fast_handler() no longer bump gd_intr_nesting_level
Discussed-with: dillon@
Reviewed-by: dillon@
Sepherosa Ziehau [Thu, 9 Jul 2009 14:06:54 +0000 (22:06 +0800)]
pci: Add MPTable Host-PCI/PCI-PCI bridges drivers.
- This driver overrides PCI bridge interrupt routing method.
- Nuke APIC_IO workaround in PCI configuration reading functions.
Obtained-from: FreeBSD
Sepherosa Ziehau [Thu, 9 Jul 2009 09:09:21 +0000 (17:09 +0800)]
IO APIC: Assign pins dedicated to PCI in the early stage.
After this, we no longer need to reprogramme IO APIC every time
an interrupt handler is to be registered, which is potentially
dangerous.
Sepherosa Ziehau [Thu, 9 Jul 2009 06:33:45 +0000 (14:33 +0800)]
ACPI MADT: Hide debug prints under bootverbose
Sepherosa Ziehau [Thu, 9 Jul 2009 05:06:19 +0000 (13:06 +0800)]
Remove unused code in pc32/ipl.s
Sepherosa Ziehau [Thu, 9 Jul 2009 04:11:00 +0000 (12:11 +0800)]
Remove unused code in pc32/apic_vector.s
Sepherosa Ziehau [Thu, 9 Jul 2009 02:15:34 +0000 (10:15 +0800)]
IO APIC: Get rid of apic_imen
Add IOAPIC_IM_FLAG_MASKED to apic_intmapinfo, which indicates the
IRQ is currently masked. Use it instead of apic_imen.
Sepherosa Ziehau [Wed, 8 Jul 2009 09:08:53 +0000 (17:08 +0800)]
IO APIC: Get rid of apic_pin_trigger
- Expend apic_intmapinfo from 16bytes to 32bytes
- Add flags field in apic_intmapinfo, which now records irq's trigger mode
Sepherosa Ziehau [Wed, 8 Jul 2009 08:30:00 +0000 (16:30 +0800)]
Use genassym to replace magic numbers in pc32/apic_{vector,ipl}.s
Sepherosa Ziehau [Wed, 8 Jul 2009 06:53:37 +0000 (14:53 +0800)]
APIC vector: Compact redirect entry's mask bit setting and clearing
Sepherosa Ziehau [Wed, 8 Jul 2009 06:32:41 +0000 (14:32 +0800)]
Use IOAPIC_WINDOW in pc32/apic_ipl.s
Sepherosa Ziehau [Wed, 8 Jul 2009 03:40:01 +0000 (11:40 +0800)]
Remove unused code in pc32/ipl.s
Sepherosa Ziehau [Wed, 8 Jul 2009 03:35:07 +0000 (11:35 +0800)]
Remove unsued code in kern/kern_intr.c
Sepherosa Ziehau [Wed, 8 Jul 2009 03:29:44 +0000 (11:29 +0800)]
fast intr: Don't dispatch to the BGL owner, if BGL could not be holden;
just reschedule ithread.
Discussed-with: dillon@
Sepherosa Ziehau [Wed, 8 Jul 2009 03:08:01 +0000 (11:08 +0800)]
Move to the interrupt's destination CPU before tearing down the interrupt
Sepherosa Ziehau [Wed, 8 Jul 2009 02:32:41 +0000 (10:32 +0800)]
Turn on PG_N (nocache) when mapping ioapic
Noticed-by: Jordan Gordeev <jgordeev@dir.bg>
Matthew Dillon [Fri, 10 Jul 2009 22:24:08 +0000 (15:24 -0700)]
procfs - fix incremental reads of /proc/*/rlimit
The rlimit code was only properly copying data for all-in-one-go reads,
and mishandling incremental reads.
Submitted-by: Beket@@irc
Matthew Dillon [Fri, 10 Jul 2009 21:09:50 +0000 (14:09 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Fri, 10 Jul 2009 21:09:13 +0000 (14:09 -0700)]
Add /sbin/getdevpath utility - userland convenience utility for getdevpath(3).
Matthew Dillon [Fri, 10 Jul 2009 20:56:56 +0000 (13:56 -0700)]
libutil - add getdevpath()
Add the getdevpath() function which translates a device name such as "da0",
or label such as "fubar", into a device path. This function searches
/usr/local/etc/devtab, /etc/devtab, and /etc/defaults/devtab for labels.
Device names beginning with '/' or '.' are assumed to be paths and passed
through.
Sascha Wildner [Fri, 10 Jul 2009 02:33:50 +0000 (04:33 +0200)]
pthread_once.3: Fix typo.
Sascha Wildner [Fri, 10 Jul 2009 02:25:21 +0000 (04:25 +0200)]
pthread_barrierattr.3: Remove empty section.
Sascha Wildner [Fri, 10 Jul 2009 02:17:38 +0000 (04:17 +0200)]
sigwait.3: Add missing '.'
Sascha Wildner [Fri, 10 Jul 2009 02:16:40 +0000 (04:16 +0200)]
pthread*.3: Sync the pthread manpages with FreeBSD.
Brings in some missing pages and some small fixes.
Reminded-by: hasso
Sascha Wildner [Thu, 9 Jul 2009 21:29:21 +0000 (23:29 +0200)]
pci.9: Sync with FreeBSD.
Jordan Gordeev [Thu, 9 Jul 2009 11:07:59 +0000 (14:07 +0300)]
amd64: Sync header 'int_limits.h' with i386.
Helps building of GNU m4 (and other GNU stuff).
Sascha Wildner [Thu, 9 Jul 2009 07:58:05 +0000 (09:58 +0200)]
Remove obsolete kernel options: PCI_ENABLE_IO_MODES & PCI_QUIET.
Sascha Wildner [Wed, 8 Jul 2009 20:43:21 +0000 (22:43 +0200)]
Remove hardcoded -g in several Makefiles.
Matthew Dillon [Thu, 9 Jul 2009 03:01:17 +0000 (20:01 -0700)]
CAM - disable cache synchronization by default for USB attachments.
Instead of trying to blacklist particular usb mass storage devices which
do not support the cache synchronization command, just default to not
supporting it for ALL usb mass storage attachments. Too many usb devices
brick when sent the command.
It matters more now that people are using HAMMER, and HAMMER utilizes the
cache synchronization command to delineate flushes. We will now by
definition not be able to guarantee recovery if HAMMER is used on a USB
mass storage device. It will probably work anyway, though.
Reported-by: Many people
Matthew Dillon [Wed, 8 Jul 2009 21:03:28 +0000 (14:03 -0700)]
AMD64 - Fix identcpu.
Matthew Dillon [Wed, 8 Jul 2009 20:41:48 +0000 (13:41 -0700)]
AMD64 - Include NULLFS in JG64
Matthew Dillon [Wed, 8 Jul 2009 20:36:26 +0000 (13:36 -0700)]
libc - use a valid pointer for malloc(0).
This fixes an issue with qsort()ing 0 elements.
Reported-by: smtms
Matthew Dillon [Wed, 8 Jul 2009 19:43:39 +0000 (12:43 -0700)]
AMD64 - Use ld -r to generate .ko for modules.
Matthew Dillon [Wed, 8 Jul 2009 19:34:10 +0000 (12:34 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Wed, 8 Jul 2009 19:33:02 +0000 (12:33 -0700)]
AMD64 - Enable module building, sync i386 headers etc as needed.
* Enable module building (platform/pc64/Makefile.inc)
* Copy files and make changes as needed to bring amd64 up to date.
Sascha Wildner [Wed, 8 Jul 2009 18:07:48 +0000 (20:07 +0200)]
hammer.8: Comment out rebalance which is not part of cleanup yet.
Matthew Dillon [Wed, 8 Jul 2009 17:52:32 +0000 (10:52 -0700)]
AMD64 - Fix native-built sys/boot install
* Pass the proper elf format to the linker when compiling programs in
sys/boot.
* include btxld in the 64 bit buildworld. It is needed by sys/boot.
* a.out.h / imgact_aout.h needed a special case to generate a 32 bit
struct exec when compiled from a 64 bit environment.
Matthew Dillon [Wed, 8 Jul 2009 16:11:37 +0000 (09:11 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Wed, 8 Jul 2009 16:10:07 +0000 (09:10 -0700)]
AHCI - Do not try to attach as AHCI unless INTEL part identifies as AHCI
Do not try to attach as AHCI if the BIOS has configured an INTEL part
as legacy ATA instead of AHCI. This is a temporary hack until the
code can be cleaned up more generally.
Reported-by: corecode
Sascha Wildner [Wed, 8 Jul 2009 12:06:45 +0000 (14:06 +0200)]
pciconf(8): Fix some warnings.
Sepherosa Ziehau [Wed, 8 Jul 2009 10:56:54 +0000 (18:56 +0800)]
Bump __DragonFly_version after introducing PCI domain
Requested-by: hasso@
Sepherosa Ziehau [Tue, 7 Jul 2009 11:41:01 +0000 (19:41 +0800)]
ACPI P-State: Allow # of member CPUs in the CPU domain less than required
This could be done as long as the CPU domain's coordination is _not_ SWALL.
Now ACPI CPU P-State driver could attach even if a UP kernel booted on an
MP box.
Sepherosa Ziehau [Tue, 7 Jul 2009 11:08:44 +0000 (19:08 +0800)]
Intel P-State CPU driver: Support ioport control/status registers
Sepherosa Ziehau [Tue, 7 Jul 2009 07:53:32 +0000 (15:53 +0800)]
ACPI P-State: Implement CPU driver for Intel CPUs
Currently altering and extracting P-State information through
IA32_PERF_{STATUS,CTL} MSR are supported.
Sepherosa Ziehau [Tue, 7 Jul 2009 05:48:37 +0000 (13:48 +0800)]
ACPI P-State: Add init method for CPU driver.
This method could be used by certain Intel ACPI P-State CPU drivers
to set "Enhanced SpeedStep" enable bit in IA32_MISC_ENABLE MSR.
Add a NOP implementation for AMD P-State CPU drivers.
Sepherosa Ziehau [Tue, 7 Jul 2009 03:49:45 +0000 (11:49 +0800)]
ACPI P-State: Try allocating resource for CSR
Sepherosa Ziehau [Tue, 7 Jul 2009 03:11:51 +0000 (11:11 +0800)]
acpi_bus_alloc_gas: Constify gas parameter
Sepherosa Ziehau [Tue, 7 Jul 2009 03:01:06 +0000 (11:01 +0800)]
ACPI C-State: Move rid allocation into ACPI CPU and save rid for each C-State
Sepherosa Ziehau [Tue, 7 Jul 2009 02:18:27 +0000 (10:18 +0800)]
ACPI P-State: Wrap ACPI_GENERIC_ADDRESS in struct acpi_pst_res
Some Intel CPUs' will need iomem/ioport to configure P-State, so
this change gives us enough space to implement this mechanism.
Sepherosa Ziehau [Tue, 7 Jul 2009 01:41:04 +0000 (09:41 +0800)]
ACPI package: Factor out acpi_PkgRawGas()
It saves the ACPI_GENERIC_ADDRESS in the specified memory location.
Sepherosa Ziehau [Tue, 7 Jul 2009 01:20:19 +0000 (09:20 +0800)]
ACPI P-State: Get rid of 'H' suffix
Sepherosa Ziehau [Mon, 6 Jul 2009 12:32:48 +0000 (20:32 +0800)]
pci/amd64: Duplicate pci/i386 to pci/amd64.
PIR and BIOS related parts are commented out as in the original code.
Sepherosa Ziehau [Mon, 6 Jul 2009 12:06:38 +0000 (20:06 +0800)]
pci: Partly restore original unknown device information logging.
Suggested-by: swildner@
Sascha Wildner [Sun, 5 Jul 2009 18:01:47 +0000 (20:01 +0200)]
pci.4: Sync with FreeBSD RELENG_7_2.
Sascha Wildner [Sun, 5 Jul 2009 17:49:32 +0000 (19:49 +0200)]
sys/bus/pci: Remove left over inclusion <sys/cdefs.h>.
Sascha Wildner [Sun, 5 Jul 2009 17:16:05 +0000 (19:16 +0200)]
pciconf(8): Sync with FreeBSD's RELENG_7_2.
Sepherosa Ziehau [Mon, 6 Jul 2009 10:55:08 +0000 (18:55 +0800)]
agp/drm: Adapt according to the recent pci code change
Submitted-by: hasso@
Sepherosa Ziehau [Sun, 5 Jul 2009 13:08:30 +0000 (21:08 +0800)]
pci: Resurrect COMPAT_OLDPCI; mainly to unbreak LINT building
Sepherosa Ziehau [Sun, 5 Jul 2009 11:29:05 +0000 (19:29 +0800)]
pci: pcib_owner no longer exists
Sepherosa Ziehau [Sun, 5 Jul 2009 11:24:28 +0000 (19:24 +0800)]
pci: Move legacyvar.h to bus/pci/i386
Sepherosa Ziehau [Sun, 5 Jul 2009 11:03:32 +0000 (19:03 +0800)]
pci: White space cleanup
Sepherosa Ziehau [Sun, 5 Jul 2009 08:12:39 +0000 (16:12 +0800)]
pci: Don't clear BAR if resource reservation failed.
Some BIOS lists HPET as PCI function, clearing its iomem BAR causes
the HPET timer stop ticking. Add comment about it.
Sepherosa Ziehau [Sun, 5 Jul 2009 04:20:52 +0000 (12:20 +0800)]
cardbus(4): Merge resource allocation changes (for new PCI code) from FreeBSD
Sepherosa Ziehau [Sun, 5 Jul 2009 04:19:47 +0000 (12:19 +0800)]
cbb(4): Rework secondary bus number setup; aware of PCI domain
Obtained-from: FreeBSD
Sepherosa Ziehau [Sat, 4 Jul 2009 12:28:23 +0000 (20:28 +0800)]
pci: Fix up bunch of warnings
Sepherosa Ziehau [Sat, 4 Jul 2009 12:06:46 +0000 (20:06 +0800)]
pci: Remove debug left overs
Sepherosa Ziehau [Sat, 4 Jul 2009 11:31:21 +0000 (19:31 +0800)]
pci: Don't allow PCIBIOS PCI-PCI bridge to attach if APIC_IO is defined
PCIBIOS PCI-PCI bridge will try routing PCI interrupt using PIR, which
is probably not what we want, even if MP table does not contain the PCI
interrupt routing information.
Sepherosa Ziehau [Sat, 4 Jul 2009 11:05:35 +0000 (19:05 +0800)]
pci: Log a message if PIR checksum failed
Sepherosa Ziehau [Sat, 4 Jul 2009 10:13:42 +0000 (18:13 +0800)]
pciconf(8): Update PCIC/PCIS macro names accordingly
Sepherosa Ziehau [Sat, 4 Jul 2009 09:09:58 +0000 (17:09 +0800)]
pci: Remove PC98 code
Sepherosa Ziehau [Sat, 4 Jul 2009 09:02:22 +0000 (17:02 +0800)]
pci: Put back PCI Express related bits
Sepherosa Ziehau [Sat, 4 Jul 2009 08:25:02 +0000 (16:25 +0800)]
pci: Reorganize PCI capabilities' extraction
Sepherosa Ziehau [Sat, 4 Jul 2009 07:19:09 +0000 (15:19 +0800)]
pci: Put back header gardian in header files
Sepherosa Ziehau [Sat, 4 Jul 2009 07:07:51 +0000 (15:07 +0800)]
Sepherosa Ziehau [Sat, 4 Jul 2009 07:06:20 +0000 (15:06 +0800)]
Sepherosa Ziehau [Sat, 4 Jul 2009 06:53:17 +0000 (14:53 +0800)]
Sepherosa Ziehau [Sat, 4 Jul 2009 05:50:56 +0000 (13:50 +0800)]
Sepherosa Ziehau [Sat, 4 Jul 2009 05:46:43 +0000 (13:46 +0800)]
Sepherosa Ziehau [Sat, 4 Jul 2009 05:44:36 +0000 (13:44 +0800)]
pci: device_identify method returns int
Sepherosa Ziehau [Sat, 4 Jul 2009 05:02:49 +0000 (13:02 +0800)]
pci: Put back APIC_IO PCI interrupt routine workaround
Sepherosa Ziehau [Sat, 4 Jul 2009 04:33:34 +0000 (12:33 +0800)]
Revoke kreallocf()
Sepherosa Ziehau [Sat, 4 Jul 2009 04:19:45 +0000 (12:19 +0800)]
pci: Don't test whether acpi module is loaded; acpi-pci is not ready to go yet
Sepherosa Ziehau [Sat, 4 Jul 2009 03:32:50 +0000 (11:32 +0800)]
Sync PCI code with FreeBSD 7.2
Submitted-by: Alexander Polakov <polachok@gmail.com>
Matthew Dillon [Wed, 8 Jul 2009 06:22:45 +0000 (23:22 -0700)]
AMD64 - Fix trapframe, intrframe, and user mode cpu accounting.
* Fix broken CLKF_USERMODE macro. This was causing the cpu accounting
code to mis-detect usermode interrupt frames.
* Fix trapframe, it was missing a field and not matching up against intrframe.
This caused a bad intrframe to be passed to doreti.
* Fix calls to lwkt_process_ipiq_frame from doreti. The intrframe was off
by 8 bytes.
Matthew Dillon [Wed, 8 Jul 2009 03:15:15 +0000 (20:15 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Wed, 8 Jul 2009 03:13:31 +0000 (20:13 -0700)]
AMD64 - Fix bug in pmap_release_free_page()
The pmap_release_free_page() function was improperly conditionalizing
a test for (pindex == NUPDE + NUPDPE + PML4PML4I) which caused it to
fall through to an else clause, instead of doing nothing. Make it
do nothing.
This fixes a hold count panic.
Matthew Dillon [Wed, 8 Jul 2009 03:12:52 +0000 (20:12 -0700)]
AMD64 - Enable floating point context switching
The FP code was only partially enabled. Enable all the code. This fixes
FP context switching between user processes.
Matthew Dillon [Wed, 8 Jul 2009 03:11:28 +0000 (20:11 -0700)]
AMD64 - stop the backtrace if the stack address is too low.
Stop the backtrace if the stack address is too low. This fixes at least
one panic when the debugger is asked to print kernel stack backtraces.
Matthew Dillon [Wed, 8 Jul 2009 03:10:46 +0000 (20:10 -0700)]
JG64 - include ahci, sili, and usb devices
Sascha Wildner [Tue, 7 Jul 2009 22:09:27 +0000 (00:09 +0200)]
hammerread.c: Fix WARNS regression (unused variable).
Matthew Dillon [Tue, 7 Jul 2009 18:19:59 +0000 (11:19 -0700)]
Merge commit 'smtms/amd64'
Matthew Dillon [Tue, 7 Jul 2009 18:02:40 +0000 (11:02 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Tue, 7 Jul 2009 17:55:35 +0000 (10:55 -0700)]
VKERNEL - vkernel test build, build SMP
* Vkernel is built SMP by default, set default number of cpus to 2.
* Provide environment or make variable overrides for NCPUS and PHYSMEM.
* Change network default to /dev/vknet (for use w/ DHCP) instead of
hardwiring 10.3.1.1.