Hi,
Well, just tried what you suggested, and here are the
results:
* If i comment the 'clear_fault_bits()' call - then Xen boots ok,
with iommu=1
The strange thing, is that after it booted one time ok (with
the second patch), then it continued to boot ok, even if i reverted the second
patch.
The relevant lines in the log are:
(XEN) clear_fault_bits:
CAP_REG=0xc0000020630270
(XEN) clear_fault_bits:
CAP_REG=0xc0000020630260
(XEN) clear_fault_bits:
CAP_REG=0xc9008020e30260
(XEN) clear_fault_bits:
CAP_REG=0xc9008020630260
Anyway, here is the full Xen log, with the
first patch (print cap's) applied:
__
__ _____
_ _ ___
\ \/ /___ _ __
|___ /| || | / _ \
\ // _ \ '_ \ |_
\| || |_| | | |
/ \ __/ | | | ___) |__
_| |_| |
/_/\_\___|_| |_| |____(_) |_|(_)___/
(XEN) Xen version 3.4.0 (root@[unknown]) (gcc version 4.3.2 (Debian
4.3.2-1.1) ) Mon Jun 29 07:53:38 EDT 2009
(XEN) Latest ChangeSet: Wed Jun
24 11:15:04 2009 +0300 19629:b2128a88e3dd
(XEN) Command line: console=com1
com1=115200,8n1 iommu=1 iommu_inclusive_mapping loglvl=all
guest_loglvl=all
(XEN) Video information:
(XEN) VGA is text mode
80x25, font 8x16
(XEN) VBE/DDC methods: V2; EDID transfer time: 1
seconds
(XEN) Disc information:
(XEN) Found 1 MBR
signatures
(XEN) Found 1 EDD information structures
(XEN) Xen-e820
RAM map:
(XEN) 0000000000000000 - 000000000009f000
(usable)
(XEN) 000000000009f000 - 00000000000a0000
(reserved)
(XEN) 0000000000100000 - 000000007c04d400
(usable)
(XEN) 000000007c04d400 - 000000007c04f400 (ACPI
NVS)
(XEN) 000000007c04f400 - 000000007f000000
(reserved)
(XEN) 00000000f8000000 - 00000000fc000000
(reserved)
(XEN) 00000000fec00000 - 00000000fec10000
(reserved)
(XEN) 00000000fed18000 - 00000000fed1c000
(reserved)
(XEN) 00000000fed20000 - 00000000fed90000
(reserved)
(XEN) 00000000feda0000 - 00000000feda6000
(reserved)
(XEN) 00000000fee00000 - 00000000fee10000
(reserved)
(XEN) 00000000ffe60000 - 0000000100000000
(reserved)
(XEN) System RAM: 1983MB (2031536kB)
(XEN) ACPI: RSDP
000FB9C0, 0024 (r2 DELL )
(XEN) ACPI: XSDT 7C051E00, 006C (r1
DELL M09 27D9020D
ASL 61)
(XEN) ACPI: FACP
7C051C9C, 00F4 (r4 DELL M09 27D9020D
ASL 61)
(XEN) ACPI: DSDT
7C052400, 6A2B (r2 INT430 SYSFexxx 1001 INTL
20050624)
(XEN) ACPI: FACS 7C060C00, 0040
(XEN) ACPI: HPET 7C051F00,
0038 (r1 DELL
M09 1
ASL 61)
(XEN) ACPI: DMAR
7C060400, 0120 (r1 DELL M09 27D9020D
ASL 61)
(XEN) ACPI: APIC
7C052000, 0068 (r1 DELL M09 27D9020D
ASL 47)
(XEN) ACPI: ASF!
7C051C00, 006A (r32 DELL M09
27D9020D ASL 61)
(XEN) ACPI: MCFG
7C051FC0, 003E (r16 DELL M09
27D9020D ASL 61)
(XEN) ACPI: TCPA
7C052300, 0032
(r1
0 ASL 0)
(XEN) ACPI: SLIC
7C05209C, 0176 (r1 DELL M09 27D9020D
ASL 61)
(XEN) ACPI: SSDT
7C05032D, 066C (r1 PmRef CpuPm
3000 INTL 20050624)
(XEN) NUMA turned off
(XEN) Faking a node at
0000000000000000-000000007c04d000
(XEN) Domain heap initialised
(XEN)
DMI 2.4 present.
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO
Port: 0x1008
(XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[1004,0],
pm1x_evt[1000,0]
(XEN)
ACPI:
wakeup_vec[7c060c0c], vec_size[20]
(XEN) ACPI: Local APIC address
0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00]
enabled)
(XEN) Processor #0 7:7 APIC version 20
(XEN) ACPI: LAPIC
(acpi_id[0x01] lapic_id[0x01] enabled)
(XEN) Processor #1 7:7 APIC version
20
(XEN) ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
(XEN) ACPI:
LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
(XEN) ACPI: IOAPIC (id[0x02]
address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 2, version 32,
address 0xfec00000, GSI 0-23
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0
global_irq 2 dfl dfl)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9
high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by
override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC
mode: Flat. Using 1 I/O APICs
(XEN) ACPI: HPET id: 0x8086a201
base: 0xfed00000
(XEN) [VT-D]dmar.c:485: Host address width 36
(XEN)
[VT-D]dmar.c:494: found ACPI_DMAR_DRHD
(XEN) [VT-D]dmar.c:349:
dmaru->address = fed10000
(XEN) [VT-D]dmar.c:300: found endpoint: bdf =
0:1b.0
(XEN) [VT-D]dmar.c:494: found ACPI_DMAR_DRHD
(XEN)
[VT-D]dmar.c:349: dmaru->address = fed11000
(XEN) [VT-D]dmar.c:300:
found endpoint: bdf = 0:2.0
(XEN) [VT-D]dmar.c:300: found endpoint: bdf =
0:2.1
(XEN) [VT-D]dmar.c:494: found ACPI_DMAR_DRHD
(XEN)
[VT-D]dmar.c:349: dmaru->address = fed12000
(XEN) [VT-D]dmar.c:300:
found endpoint: bdf = 0:3.0
(XEN) [VT-D]dmar.c:300: found endpoint: bdf =
0:3.2
(XEN) [VT-D]dmar.c:300: found endpoint: bdf = 0:3.3
(XEN)
[VT-D]dmar.c:494: found ACPI_DMAR_DRHD
(XEN) [VT-D]dmar.c:349:
dmaru->address = fed13000
(XEN) [VT-D]dmar.c:358: found
INCLUDE_ALL
(XEN) [VT-D]dmar.c:498: found ACPI_DMAR_RMRR
(XEN)
[VT-D]dmar.c:300: found endpoint: bdf = 0:1d.0
(XEN) [VT-D]dmar.c:300:
found endpoint: bdf = 0:1d.1
(XEN) [VT-D]dmar.c:300: found endpoint: bdf =
0:1d.2
(XEN) [VT-D]dmar.c:300: found endpoint: bdf = 0:1d.7
(XEN)
[VT-D]dmar.c:300: found endpoint: bdf = 0:1a.0
(XEN) [VT-D]dmar.c:300:
found endpoint: bdf = 0:1a.1
(XEN) [VT-D]dmar.c:300: found endpoint: bdf =
0:1a.2
(XEN) [VT-D]dmar.c:300: found endpoint: bdf = 0:1a.7
(XEN)
[VT-D]dmar.c:498: found ACPI_DMAR_RMRR
(XEN) [VT-D]dmar.c:300: found
endpoint: bdf = 0:2.0
(XEN) [VT-D]dmar.c:300: found endpoint: bdf =
0:2.1
(XEN) Intel VT-d DMAR tables have been parsed.
(XEN) Using ACPI
(MADT) for SMP configuration information
(XEN) Using scheduler: SMP Credit
Scheduler (credit)
(XEN) Initializing CPU#0
(XEN) Detected 2527.068 MHz
processor.
(XEN) CPU: L1 I cache: 32K, L1 D cache: 32K
(XEN) CPU: L2
cache: 6144K
(XEN) CPU: Physical Processor ID: 0
(XEN) CPU: Processor
Core ID: 0
(XEN) VMX: Supported advanced features:
(XEN) - APIC
MMIO access virtualisation
(XEN) - APIC TPR shadow
(XEN) -
Virtual NMI
(XEN) - MSR direct-access bitmap
(XEN) HVM: VMX
enabled
(XEN) Intel machine check reporting enabled on CPU#0.
(XEN)
mce_init: init bank1
(XEN) mce_init: init bank2
(XEN) mce_init: init
bank3
(XEN) mce_init: init bank4
(XEN) mce_init: init bank5
(XEN)
CPU0: Thermal monitoring enabled (TM2)
(XEN) CMCI: CPU0 has no CMCI
support
(XEN) CPU0: Intel(R) Core(TM)2 Duo CPU
T9400 @ 2.53GHz stepping 06
(XEN) Booting processor 1/1 eip
8c000
(XEN) Initializing CPU#1
(XEN) CPU: L1 I cache: 32K, L1 D cache:
32K
(XEN) CPU: L2 cache: 6144K
(XEN) CPU: Physical Processor ID:
0
(XEN) CPU: Processor Core ID: 1
(XEN) Intel machine check reporting
enabled on CPU#1.
(XEN) mce_init: init bank1
(XEN) mce_init: init
bank2
(XEN) mce_init: init bank4
(XEN) mce_init: init bank5
(XEN)
CPU1: Thermal monitoring enabled (TM2)
(XEN) CMCI: CPU1 has no CMCI
support
(XEN) CPU1: Intel(R) Core(TM)2 Duo CPU
T9400 @ 2.53GHz stepping 06
(XEN) Total of 2 processors
activated.
(XEN) ENABLING IO-APIC IRQs
(XEN) -> Using new ACK
method
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=-1 pin2=-1
(XEN)
checking TSC synchronization across 2 CPUs: passed.
(XEN) Platform timer is
14.318MHz HPET
(XEN) Brought up 2 CPUs
(XEN) microcode.c:73:d32767
microcode: CPU1 resumed
(XEN) [VT-D]iommu.c:1763: DMAR: Forcing
write-buffer flush
(XEN) Intel VT-d Snoop Control not supported.
(XEN)
Intel VT-d DMA Passthrough not supported.
(XEN) Intel VT-d Queued
Invalidation not supported.
(XEN) Intel VT-d Interrupt Remapping not
supported.
(XEN) clear_fault_bits: CAP_REG=0xc0000020630270
(XEN)
clear_fault_bits: CAP_REG=0xc0000020630260
(XEN) clear_fault_bits:
CAP_REG=0xc9008020e30260
(XEN) clear_fault_bits:
CAP_REG=0xc9008020630260
(XEN) I/O virtualisation enabled
(XEN) I/O
virtualisation for PV guests disabled
(XEN) HPET: 4 timers in total, 0
timers will be used for broadcast
(XEN) ACPI sleep modes: S3
(XEN)
mcheck_poll: Machine check polling timer started.
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:0.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:2.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:2.1
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:3.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:3.2
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:3.3
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:19.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1a.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1a.1
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1a.2
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1a.7
(XEN)
[VT-D]iommu.c:1245:d32767 domain_context_mapping:PCIe: bdf = 0:1b.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1d.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1d.1
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1d.2
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1d.7
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1f.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1f.2
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1f.3
(XEN)
[VT-D]iommu.c:1245:d32767 domain_context_mapping:PCIe: bdf = c:0.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:2.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:2.1
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1d.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1d.1
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1d.2
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1d.7
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1a.0
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1a.1
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1a.2
(XEN)
[VT-D]iommu.c:1252:d32767 domain_context_mapping:PCI: bdf = 0:1a.7
(XEN)
[VT-D]iommu.c:620: iommu_enable_translation: iommu->reg =
ffff828bfff57000
(XEN) [VT-D]iommu.c:620: iommu_enable_translation:
iommu->reg = ffff828bfff56000
(XEN) [VT-D]iommu.c:620:
iommu_enable_translation: iommu->reg = ffff828bfff55000
(XEN)
[VT-D]iommu.c:620: iommu_enable_translation: iommu->reg =
ffff828bfff54000
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Xen
kernel: 64-bit, lsb, compat32
(XEN) Dom0 kernel: 64-bit, lsb, paddr
0xffffffff80200000 -> 0xffffffff8070ab48
(XEN) PHYSICAL MEMORY
ARRANGEMENT:
(XEN) Dom0 alloc.:
0000000076000000->0000000078000000 (460259 pages to be allocated)
(XEN)
VIRTUAL MEMORY ARRANGEMENT:
(XEN) Loaded kernel:
ffffffff80200000->ffffffff8070ab48
(XEN) Init. ramdisk:
ffffffff8070b000->ffffffff81b94400
(XEN) Phys-Mach map:
ffffffff81b95000->ffffffff81f27f18
(XEN) Start
info: ffffffff81f28000->ffffffff81f284b4
(XEN)
Page tables: ffffffff81f29000->ffffffff81f3c000
(XEN)
Boot stack:
ffffffff81f3c000->ffffffff81f3d000
(XEN)
TOTAL:
ffffffff80000000->ffffffff82000000
(XEN) ENTRY ADDRESS:
ffffffff80200000
(XEN) Dom0 has maximum 2 VCPUs
(XEN) Scrubbing Free
RAM: .done.
(XEN) Xen trace buffers: disabled
(XEN) Std. Loglevel:
All
(XEN) Guest Loglevel: All
(XEN) *** Serial input -> DOM0 (type
'CTRL-a' three times to switch input to Xen)
(XEN) Freed 132kB init
memory.
Tom
2009/6/29 Cui, Dexuan
<dexuan.cui@xxxxxxxxx>
diff -r 90391e2247fc xen/drivers/passthrough/vtd/iommu.c
---
a/xen/drivers/passthrough/vtd/iommu.c Tue Jun 23 11:40:27 2009
+0100
+++ b/xen/drivers/passthrough/vtd/iommu.c Mon Jun 29
10:24:31 2009 +0800
@@ -1693,7 +1693,7 @@ static int
init_vtd_hw(void)
}
dma_msi_data_init(iommu, iommu->vector);
dma_msi_addr_init(iommu,
cpu_physical_id(first_cpu(cpu_online_map)));
-
clear_fault_bits(iommu);
+
//clear_fault_bits(iommu);
dmar_writel(iommu->reg, DMAR_FECTL_REG, 0);
/* initialize flush functions */
And, can you comment the
invocation of clear_fault_bits() in init_vtd_hw() like above and see if the
host can boot fine?
Thanks,
--
Dexuan
-----Original Message-----
From: Cui, Dexuan
Sent:
2009?6?29? 14:30
To: 'Tom Rotenberg';
xen-devel@xxxxxxxxxxxxxxxxxxxSubject: RE: [Xen-devel]
Problem: Xen 3.4 fails to boot on Dell e6400, with iommu=1
diff -r
90391e2247fc xen/drivers/passthrough/vtd/iommu.c
---
a/xen/drivers/passthrough/vtd/iommu.c Tue Jun 23 11:40:27 2009
+0100
+++ b/xen/drivers/passthrough/vtd/iommu.c Mon Jun 29
10:18:23 2009 +0800
@@ -1653,6 +1653,8 @@ void clear_fault_bits(struct
iommu *iomm
{
u64 val;
+
printk("clear_fault_bits: CAP_REG=0x%llx\n",
+
(unsigned long long)dmar_readq(iommu->reg,DMAR_CAP_REG));
val = dmar_readq(
iommu->reg,
cap_fault_reg_offset(dmar_readq(iommu->reg,DMAR_CAP_REG))+0x8);
Hi
Tom,
Can you please apply the above patch and send us the entire
log?
(I don't have the same host, so I can't try it
myself.)
Thanks,
--
Dexuan
________________________________
From:
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Tom
Rotenberg
Sent: 2009?6?28? 22:56
To:
xen-devel@xxxxxxxxxxxxxxxxxxxSubject: [Xen-devel]
Problem: Xen 3.4 fails to boot on Dell e6400, with iommu=1
Hi,
I am trying to use xen 3.4 on a Dell E6400 machine. But,
when i try to boot xen with a 'iommu=1' parameter in the boot line, Xen
fails to boot. I have also tried to boot with and without the
'iommu_inclusive_mapping' boot option, but it didn't seem to help at
all.
Does anyone knows how to solve this issue?
These are the
last messages in the UART:
(XEN) Brought up 2 CPUs
(XEN)
microcode.c:73:d32767 microcode: CPU1 resumed
(XEN) [VT-D]iommu.c:1761:
DMAR: Forcing write-buffer flush
(XEN) Intel VT-d Snoop Control
supported.
(XEN) Intel VT-d DMA Passthrough not supported.
(XEN) Intel
VT-d Queued Invalidation supported.
(XEN) Intel VT-d Interrupt Remapping
supported.
(XEN) ----[ Xen-3.4.0 x86_64 debug=n Not
tainted ]----
(XEN) CPU: 0
(XEN) RIP:
e008:[<ffff828c8012c951>] clear_fault_bits+0x21/0xa0
(XEN)
RFLAGS: 0000000000010202 CONTEXT: hypervisor
(XEN) rax:
ffff828bfff5aff8 rbx: ffff830078f82f90 rcx:
0000000000000020
(XEN) rdx: 00000000ffffffff rsi: ffff828bfff57000
rdi: ffff830078f82f90
(XEN) rbp: 0000000000000090 rsp:
ffff828c8026fda0 r8: ffff83007be2c110
(XEN) r9:
000000000000001a r10: 0000000000000005 r11:
0000000000000005
(XEN) r12: 0000000000000090 r13: 0000000000000090
r14: ffff830078f82fcc
(XEN) r15: 0000000000004800 cr0:
000000008005003b cr4: 00000000000026f0
(XEN) cr3: 000000007be74000
cr2: ffff828bfff5aff8
(XEN) ds: 0000 es: 0000 fs:
0000 gs: 0000 ss: 0000 cs: e008
(XEN) Xen stack
trace from rsp=ffff828c8026fda0:
(XEN) ffff828c8012d32d
ffff830078f824b0 ffff828c801e422f ffff828c80204490
(XEN)
ffff828c801e422f ffff828c802044c0 ffff828c8026fdf8
0000000000000000
(XEN) ffff828c8012de7e ffff830078f82d40
ffff828c80228100 000000000000001f
(XEN) 00000000ffffffed
ffff828c80227a78 0000000000000001 ffff828c80205f60
(XEN)
ffff828c801f3400 ffff83000008bf40 ffff828c8012a9d4
ffff828c80227978
(XEN) ffff828c8021a589 0000000000000000
0000000000000000 0000000000000000
(XEN) 0000000000000000
0000000000000000 0000000000000000 0000000000000000
(XEN)
00000000002b23c0 ffffff8c80274000 0008bf4000000000
000000000008bf40
(XEN) 0000000000000000 ffff83000008bfc0
0000000001ce08a0 0000000000000000
(XEN) ffffffff00000000
0000000800000000 000000010000006e 0000000000000003
(XEN)
00000000000002f8 0000000000000000 0000000000000000
0000000000067e2c
(XEN) 0000000000000000 0000000000000000
0000000000000000 0000000000000000
(XEN) ffff828c801000b5
0000000000000000 0000000000000000 0000000000000000
(XEN)
0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN) 0000000000000000 0000000000000000
0000000000000000 0000000000000000
(XEN) 0000000000000000
0000000000000000 0000000000000000 0000000000000000
(XEN)
0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN) 0000000000000000 0000000000000000
0000000000000000 0000000000000000
(XEN) 0000000000000000
0000000000000000 0000000000000000 ffff830079f18000
(XEN) Xen call
trace:
(XEN) [<ffff828c8012c951>]
clear_fault_bits+0x21/0xa0
(XEN) [<ffff828c8012d32d>]
init_vtd_hw+0x15d/0x3e0
(XEN) [<ffff828c8012de7e>]
intel_vtd_setup+0x5ae/0x610
(XEN) [<ffff828c8012a9d4>]
iommu_setup+0x24/0x110
(XEN) [<ffff828c8021a589>]
__start_xen+0x1859/0x27c0
(XEN) [<ffff828c801000b5>]
__high_start+0xa1/0xa3
(XEN)
(XEN) Pagetable walk from
ffff828bfff5aff8:
(XEN) L4[0x105] = 000000007be7a027
5555555555555555
(XEN) L3[0x02f] = 000000007c04b063
5555555555555555
(XEN) L2[0x1ff] = 000000007c04a063
5555555555555555
(XEN) L1[0x15a] = 0000000000000000
ffffffffffffffff
(XEN)
(XEN)
****************************************
(XEN) Panic on CPU 0:
(XEN)
FATAL PAGE FAULT
(XEN) [error_code=0000]
(XEN) Faulting linear
address: ffff828bfff5aff8
(XEN)
****************************************
(XEN)
(XEN) Reboot in five
seconds...