svn commit: r212533 - head/sys/dev/acpica
Alexander Motin
mav at FreeBSD.org
Mon Sep 13 06:32:56 UTC 2010
Author: mav
Date: Mon Sep 13 06:32:56 2010
New Revision: 212533
URL: http://svn.freebsd.org/changeset/base/212533
Log:
Add tunable 'hint.hpet.X.per_cpu' to specify how much per-CPU timers driver
should provide if there is sufficient hardware. Default is 1.
Modified:
head/sys/dev/acpica/acpi_hpet.c
Modified: head/sys/dev/acpica/acpi_hpet.c
==============================================================================
--- head/sys/dev/acpica/acpi_hpet.c Mon Sep 13 05:03:37 2010 (r212532)
+++ head/sys/dev/acpica/acpi_hpet.c Mon Sep 13 06:32:56 2010 (r212533)
@@ -74,6 +74,7 @@ struct hpet_softc {
int irq;
int useirq;
int legacy_route;
+ int per_cpu;
uint32_t allowed_irqs;
struct resource *mem_res;
struct resource *intr_res;
@@ -501,6 +502,11 @@ hpet_attach(device_t dev)
resource_int_value(device_get_name(dev), device_get_unit(dev),
"allowed_irqs", &sc->allowed_irqs);
+ /* Get how much per-CPU timers we should try to provide. */
+ sc->per_cpu = 1;
+ resource_int_value(device_get_name(dev), device_get_unit(dev),
+ "per_cpu", &sc->per_cpu);
+
num_msi = 0;
sc->useirq = 0;
/* Find IRQ vectors for all timers. */
@@ -556,7 +562,7 @@ hpet_attach(device_t dev)
if (sc->legacy_route)
hpet_enable(sc);
/* Group timers for per-CPU operation. */
- num_percpu_et = min(num_msi / mp_ncpus, 1);
+ num_percpu_et = min(num_msi / mp_ncpus, sc->per_cpu);
num_percpu_t = num_percpu_et * mp_ncpus;
pcpu_master = 0;
cur_cpu = CPU_FIRST();
More information about the svn-src-head
mailing list