Re: Stop scheduler on panic
On Thu, Nov 17, 2011 at 01:07:38AM +0200, Alexander Motin wrote: > On 17.11.2011 00:21, Andriy Gapon wrote: > >on 16/11/2011 21:27 Fabian Keil said the following: > >>Kostik Belousov wrote: > >> > >>>I was tricked into finishing the work by Andrey Gapon, who developed > >>>the patch to reliably stop other processors on panic. The patch > >>>greatly improves the chances of getting dump on panic on SMP host. > >> > >>I tested the patch trying to get a dump (from the debugger) for > >>kern/162036, which currently results in the double fault reported in: > >>http://lists.freebsd.org/pipermail/freebsd-current/2011-September/027766.html > >> > >>It didn't help, but also didn't make anything worse. > >> > >>Fabian > > > >The mi_switch recursion looks very familiar to me: > >mi_switch() at mi_switch+0x270 > >critical_exit() at critical_exit+0x9b > >spinlock_exit() at spinlock_exit+0x17 > >mi_switch() at mi_switch+0x275 > >critical_exit() at critical_exit+0x9b > >spinlock_exit() at spinlock_exit+0x17 > >[several pages of the previous three lines skipped] > >mi_switch() at mi_switch+0x275 > >critical_exit() at critical_exit+0x9b > >spinlock_exit() at spinlock_exit+0x17 > >intr_even_schedule_thread() at intr_event_schedule_thread+0xbb > >ahci_end_transaction() at ahci_end_transaction+0x398 > >ahci_ch_intr() at ahci_ch_intr+0x2b5 > >ahcipoll() at ahcipoll+0x15 > >xpt_polled_action() at xpt_polled_action+0xf7 > > > >In fact I once discussed with jhb this recursion triggered from a different > >place. To quote myself: > >spinlock_exit -> critical_exit -> mi_switch -> kdb_switch -> > >thread_unlock -> spinlock_exit -> critical_exit -> mi_switch -> ... > >in the kdb context > >this issue seems to be triggered by td_owepreempt being true at > >the time > >kdb is entered > >and there of course has to be an initial spinlock_exit call > >somewhere > >in my case it's because of usb keyboard > >I wonder if it would make sense to clear td_owepreempt right > >before > >calling kdb_switch in mi_switch > >instead of in sched_switch() > >clearing td_owepreempt seems like a scheduler-independent > >operation to me > >or is it better to just skip locking in usb when kdb_active is set > >? > > > >The workaround described above should work in this case. > >Another possibility is to pessimize mtx_unlock_spin() implementations to > >check > >SCHEDULER_STOPPED() and to bypass any further actions in that case. But > >that > >would add unnecessary overhead to the sunny day code paths. > > > >Going further up the stack one can come up with the following proposals: > >- check SCHEDULER_STOPPED() swi_sched() and return early > >- do not call swi_sched() from xpt_done() if we somehow know that we are > >in a > >polling mode > > There is no flag in CAM now to indicate polling mode, but if needed, it > should not be difficult to add one and not call swi_sched(). I have the following change for eons on my test boxes. Without it, I simply cannot get _any_ dump. diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index 10b89c7..a38e42f 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) TAILQ_INSERT_TAIL(&cam_simq, sim, links); mtx_unlock(&cam_simq_lock); sim->flags |= CAM_SIM_ON_DONEQ; - if (first) + if (first && panicstr == NULL) swi_sched(cambio_ih, 0); } } pgp3ESGBc0NMm.pgp Description: PGP signature
Re: Stop scheduler on panic
on 17/11/2011 10:15 Kostik Belousov said the following: > On Thu, Nov 17, 2011 at 01:07:38AM +0200, Alexander Motin wrote: >> On 17.11.2011 00:21, Andriy Gapon wrote: >>> Going further up the stack one can come up with the following proposals: >>> - check SCHEDULER_STOPPED() swi_sched() and return early >>> - do not call swi_sched() from xpt_done() if we somehow know that we are >>> in a >>> polling mode >> >> There is no flag in CAM now to indicate polling mode, but if needed, it >> should not be difficult to add one and not call swi_sched(). > > I have the following change for eons on my test boxes. Without it, > I simply cannot get _any_ dump. > > diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > index 10b89c7..a38e42f 100644 > --- a/sys/cam/cam_xpt.c > +++ b/sys/cam/cam_xpt.c > @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > TAILQ_INSERT_TAIL(&cam_simq, sim, links); > mtx_unlock(&cam_simq_lock); > sim->flags |= CAM_SIM_ON_DONEQ; > - if (first) > + if (first && panicstr == NULL) > swi_sched(cambio_ih, 0); > } > } I think that this (or similar) change should go into the patch and the tree. -- Andriy Gapon ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
On 11/17/11 10:15, Kostik Belousov wrote: > On Thu, Nov 17, 2011 at 01:07:38AM +0200, Alexander Motin wrote: >> On 17.11.2011 00:21, Andriy Gapon wrote: >>> on 16/11/2011 21:27 Fabian Keil said the following: Kostik Belousov wrote: > I was tricked into finishing the work by Andrey Gapon, who developed > the patch to reliably stop other processors on panic. The patch > greatly improves the chances of getting dump on panic on SMP host. I tested the patch trying to get a dump (from the debugger) for kern/162036, which currently results in the double fault reported in: http://lists.freebsd.org/pipermail/freebsd-current/2011-September/027766.html It didn't help, but also didn't make anything worse. Fabian >>> >>> The mi_switch recursion looks very familiar to me: >>> mi_switch() at mi_switch+0x270 >>> critical_exit() at critical_exit+0x9b >>> spinlock_exit() at spinlock_exit+0x17 >>> mi_switch() at mi_switch+0x275 >>> critical_exit() at critical_exit+0x9b >>> spinlock_exit() at spinlock_exit+0x17 >>> [several pages of the previous three lines skipped] >>> mi_switch() at mi_switch+0x275 >>> critical_exit() at critical_exit+0x9b >>> spinlock_exit() at spinlock_exit+0x17 >>> intr_even_schedule_thread() at intr_event_schedule_thread+0xbb >>> ahci_end_transaction() at ahci_end_transaction+0x398 >>> ahci_ch_intr() at ahci_ch_intr+0x2b5 >>> ahcipoll() at ahcipoll+0x15 >>> xpt_polled_action() at xpt_polled_action+0xf7 >>> >>> In fact I once discussed with jhb this recursion triggered from a different >>> place. To quote myself: >>> spinlock_exit -> critical_exit -> mi_switch -> kdb_switch -> >>> thread_unlock -> spinlock_exit -> critical_exit -> mi_switch -> ... >>> in the kdb context >>> this issue seems to be triggered by td_owepreempt being true at >>> the time >>> kdb is entered >>> and there of course has to be an initial spinlock_exit call >>> somewhere >>> in my case it's because of usb keyboard >>> I wonder if it would make sense to clear td_owepreempt right >>> before >>> calling kdb_switch in mi_switch >>> instead of in sched_switch() >>> clearing td_owepreempt seems like a scheduler-independent >>> operation to me >>> or is it better to just skip locking in usb when kdb_active is set >>> ? >>> >>> The workaround described above should work in this case. >>> Another possibility is to pessimize mtx_unlock_spin() implementations to >>> check >>> SCHEDULER_STOPPED() and to bypass any further actions in that case. But >>> that >>> would add unnecessary overhead to the sunny day code paths. >>> >>> Going further up the stack one can come up with the following proposals: >>> - check SCHEDULER_STOPPED() swi_sched() and return early >>> - do not call swi_sched() from xpt_done() if we somehow know that we are >>> in a >>> polling mode >> >> There is no flag in CAM now to indicate polling mode, but if needed, it >> should not be difficult to add one and not call swi_sched(). > > I have the following change for eons on my test boxes. Without it, > I simply cannot get _any_ dump. > > diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > index 10b89c7..a38e42f 100644 > --- a/sys/cam/cam_xpt.c > +++ b/sys/cam/cam_xpt.c > @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > TAILQ_INSERT_TAIL(&cam_simq, sim, links); > mtx_unlock(&cam_simq_lock); > sim->flags |= CAM_SIM_ON_DONEQ; > - if (first) > + if (first && panicstr == NULL) > swi_sched(cambio_ih, 0); > } > } That should be OK for kernel dumping. I was thinking about CAM abusing polling not only for dumping. But looking on cases where it does it now, may be it is better to rewrite them instead. -- Alexander Motin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: [amd64] Reproducible cold boot failure (reboot succeeds) in -CURRENT
Am 16.11.2011 17:16, schrieb John Baldwin: > On Sunday, November 13, 2011 12:56:12 pm Stefan Esser wrote: >> ... >> WARNING: WITNESS option enabled, expect reduced performance. >> Table 'FACP' at 0xba918a58 >> Table 'APIC' at 0xba918b50 >> Table 'SSDT' at 0xba918be8 >> Table 'MCFG' at 0xba918dc0 >> Table 'HPET' at 0xba918e00 >> ACPI: No SRAT table found >> Preloaded elf kernel "/boot/kernel/kernel" at 0x81109000 >> Preloaded elf obj module "/boot/kernel/zfs.ko" at 0x81109370 <-- >> kldload: unexpected relocation type 67108875 >> kernel trap 12 with interrupts disabled >> >> The irritating detail is the load address of "zfs.ko", which is just >> 0x370 bytes above the kernel load address ... > > That isn't unusual. Those are the addresses of the metadata provided by the > loader, not the base address of the kernel or zfs.ko object themselves. The > unexpected relocation type is interesting however. That value in hex is > 0x40b. 0xb is the R_X86_64_32S relocation type which is normal for the > kernel. I think you just have a single-bit memory error due to a failing > DIMM. Thanks for the information about the load address semantics. The other unexpected relocation type I observed was 268435457 == 0x1001, which also hints at a single bit error. But today the system failed with a different error: ath0: ... ioapic0: routing interrupt 18 to ... panic: vm_page_insert: page already inserted This could of course also be caused by a single bit error ... But the strange thing is that the system runs perfectly stable under load (e.g. "make -j8 world") and that the ZFS ARC grows to some 6GB (of 8GB RAM installed) and I'd expect checksum errors to occur, if there is a bad DIMM. Anyway, I'll check with memtest86+ (or whatever best supports my system with 8GB RAM) over night. The system boots reliably when switched off for less than a few hours (I haven't determined the exact limit, but 3 hours are not sufficient to reproduce the boot failure, while 10 hours cause the first boot attempt to fail with 90% likelihood; the second one always succeeds). I'm wondering whether the system RAM is not correctly initialized after being powered off for 10 hours (but I do not understand why 3 hours should not lead to the exact same initial state). BTW: It suffices to have the system at power state S5 for 10 hours to cause the boot failure, while less than 3 hours (without any power or at S5) let the boot succeed on the first attempt. >> I had already assumed that memory was corrupted during early start-up, >> but now I think that gptzfsboot writes the zfs kernel module over the >> start of the loaded kernel. I'll try some more tests later today. > > Nah, if zfs.ko were loaded over the beginning of the kernel you wouldn't even > get to the point of the first kernel printf. Yes, I see that the failure would be less random (3 different kinds of panic and different warning messages before the panic occurs). But I still do not understand how the symptoms can be interpreted: 1) The system booted reliably for many months 2) It boots reliably when powered off for only a few hours 3) It fails on the first boot attempt after 10 hours or more 4) It never shows signs of instability after a successful boot Hmmm, perhaps there is a problem with components at room temperature and the system is still significantly warmer after 3 hours? I'll have to check for such a thermal effect too ... Best regards, STefan ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
On Thu, Nov 17, 2011 at 10:40:58AM +0200, Alexander Motin wrote: > On 11/17/11 10:15, Kostik Belousov wrote: > > On Thu, Nov 17, 2011 at 01:07:38AM +0200, Alexander Motin wrote: > >> On 17.11.2011 00:21, Andriy Gapon wrote: > >>> on 16/11/2011 21:27 Fabian Keil said the following: > Kostik Belousov wrote: > > > I was tricked into finishing the work by Andrey Gapon, who developed > > the patch to reliably stop other processors on panic. The patch > > greatly improves the chances of getting dump on panic on SMP host. > > I tested the patch trying to get a dump (from the debugger) for > kern/162036, which currently results in the double fault reported in: > http://lists.freebsd.org/pipermail/freebsd-current/2011-September/027766.html > > It didn't help, but also didn't make anything worse. > > Fabian > >>> > >>> The mi_switch recursion looks very familiar to me: > >>> mi_switch() at mi_switch+0x270 > >>> critical_exit() at critical_exit+0x9b > >>> spinlock_exit() at spinlock_exit+0x17 > >>> mi_switch() at mi_switch+0x275 > >>> critical_exit() at critical_exit+0x9b > >>> spinlock_exit() at spinlock_exit+0x17 > >>> [several pages of the previous three lines skipped] > >>> mi_switch() at mi_switch+0x275 > >>> critical_exit() at critical_exit+0x9b > >>> spinlock_exit() at spinlock_exit+0x17 > >>> intr_even_schedule_thread() at intr_event_schedule_thread+0xbb > >>> ahci_end_transaction() at ahci_end_transaction+0x398 > >>> ahci_ch_intr() at ahci_ch_intr+0x2b5 > >>> ahcipoll() at ahcipoll+0x15 > >>> xpt_polled_action() at xpt_polled_action+0xf7 > >>> > >>> In fact I once discussed with jhb this recursion triggered from a > >>> different > >>> place. To quote myself: > >>> spinlock_exit -> critical_exit -> mi_switch -> kdb_switch -> > >>> thread_unlock -> spinlock_exit -> critical_exit -> mi_switch -> ... > >>> in the kdb context > >>> this issue seems to be triggered by td_owepreempt being true at > >>> the time > >>> kdb is entered > >>> and there of course has to be an initial spinlock_exit call > >>> somewhere > >>> in my case it's because of usb keyboard > >>> I wonder if it would make sense to clear td_owepreempt right > >>> before > >>> calling kdb_switch in mi_switch > >>> instead of in sched_switch() > >>> clearing td_owepreempt seems like a scheduler-independent > >>> operation to me > >>> or is it better to just skip locking in usb when kdb_active is > >>> set > >>> ? > >>> > >>> The workaround described above should work in this case. > >>> Another possibility is to pessimize mtx_unlock_spin() implementations to > >>> check > >>> SCHEDULER_STOPPED() and to bypass any further actions in that case. But > >>> that > >>> would add unnecessary overhead to the sunny day code paths. > >>> > >>> Going further up the stack one can come up with the following proposals: > >>> - check SCHEDULER_STOPPED() swi_sched() and return early > >>> - do not call swi_sched() from xpt_done() if we somehow know that we are > >>> in a > >>> polling mode > >> > >> There is no flag in CAM now to indicate polling mode, but if needed, it > >> should not be difficult to add one and not call swi_sched(). > > > > I have the following change for eons on my test boxes. Without it, > > I simply cannot get _any_ dump. > > > > diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > > index 10b89c7..a38e42f 100644 > > --- a/sys/cam/cam_xpt.c > > +++ b/sys/cam/cam_xpt.c > > @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > > TAILQ_INSERT_TAIL(&cam_simq, sim, links); > > mtx_unlock(&cam_simq_lock); > > sim->flags |= CAM_SIM_ON_DONEQ; > > - if (first) > > + if (first && panicstr == NULL) > > swi_sched(cambio_ih, 0); > > } > > } > > That should be OK for kernel dumping. I was thinking about CAM abusing > polling not only for dumping. But looking on cases where it does it now, > may be it is better to rewrite them instead. So, should I interpret your response as 'Reviewed by" ? pgplu0xBQRD1h.pgp Description: PGP signature
[head tinderbox] failure on arm/arm
TB --- 2011-11-17 07:30:00 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 07:30:00 - starting HEAD tinderbox run for arm/arm TB --- 2011-11-17 07:30:00 - cleaning the object tree TB --- 2011-11-17 07:30:23 - cvsupping the source tree TB --- 2011-11-17 07:30:23 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/arm/arm/supfile TB --- 2011-11-17 07:30:37 - building world TB --- 2011-11-17 07:30:37 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 07:30:37 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 07:30:37 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 07:30:37 - SRCCONF=/dev/null TB --- 2011-11-17 07:30:37 - TARGET=arm TB --- 2011-11-17 07:30:37 - TARGET_ARCH=arm TB --- 2011-11-17 07:30:37 - TZ=UTC TB --- 2011-11-17 07:30:37 - __MAKE_CONF=/dev/null TB --- 2011-11-17 07:30:37 - cd /src TB --- 2011-11-17 07:30:37 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 07:30:38 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 08:26:17 UTC 2011 TB --- 2011-11-17 08:26:17 - cd /src/sys/arm/conf TB --- 2011-11-17 08:26:17 - /usr/sbin/config -m AVILA TB --- 2011-11-17 08:26:17 - building AVILA kernel TB --- 2011-11-17 08:26:17 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 08:26:17 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 08:26:17 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 08:26:17 - SRCCONF=/dev/null TB --- 2011-11-17 08:26:17 - TARGET=arm TB --- 2011-11-17 08:26:17 - TARGET_ARCH=arm TB --- 2011-11-17 08:26:17 - TZ=UTC TB --- 2011-11-17 08:26:17 - __MAKE_CONF=/dev/null TB --- 2011-11-17 08:26:17 - cd /src TB --- 2011-11-17 08:26:17 - /usr/bin/make -B buildkernel KERNCONF=AVILA >>> Kernel build for AVILA started on Thu Nov 17 08:26:18 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for AVILA completed on Thu Nov 17 08:29:46 UTC 2011 TB --- 2011-11-17 08:29:46 - cd /src/sys/arm/conf TB --- 2011-11-17 08:29:46 - /usr/sbin/config -m BWCT TB --- 2011-11-17 08:29:47 - building BWCT kernel TB --- 2011-11-17 08:29:47 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 08:29:47 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 08:29:47 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 08:29:47 - SRCCONF=/dev/null TB --- 2011-11-17 08:29:47 - TARGET=arm TB --- 2011-11-17 08:29:47 - TARGET_ARCH=arm TB --- 2011-11-17 08:29:47 - TZ=UTC TB --- 2011-11-17 08:29:47 - __MAKE_CONF=/dev/null TB --- 2011-11-17 08:29:47 - cd /src TB --- 2011-11-17 08:29:47 - /usr/bin/make -B buildkernel KERNCONF=BWCT >>> Kernel build for BWCT started on Thu Nov 17 08:29:47 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for BWCT completed on Thu Nov 17 08:31:54 UTC 2011 TB --- 2011-11-17 08:31:54 - cd /src/sys/arm/conf TB --- 2011-11-17 08:31:54 - /usr/sbin/config -m CAMBRIA TB --- 2011-11-17 08:31:54 - building CAMBRIA kernel TB --- 2011-11-17 08:31:54 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 08:31:54 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 08:31:54 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 08:31:54 - SRCCONF=/dev/null TB --- 2011-11-17 08:31:54 - TARGET=arm TB --- 2011-11-17 08:31:54 - TARGET_ARCH=arm TB --- 2011-11-17 08:31:54 - TZ=UTC TB --- 2011-11-17 08:31:54 - __MAKE_CONF=/dev/null TB --- 2011-11-17 08:31:54 - cd /src TB --- 2011-11-17 08:31:54 - /usr/bin/make -B buildkernel KERNCONF=CAMBRIA >>> Kernel build for CAMBRIA started on Thu Nov 17 08:31:54 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for CAMBRIA completed on Thu Nov 17 08:34:52 UTC 2011 TB --- 2011-11-17 08:34:52 - cd /src/sys/arm/conf TB --- 2011-11-17 08:34:52 - /usr/sbin/config -m CNS11XXNAS TB --- 2011-11-17 08:34:52 - building CNS11XXNAS kernel TB --- 2011-11-17 08:34:52 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 08:34:52 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 08:34:52 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 08:34:52 - SRCCONF=/dev/null TB --- 2011-11-17 08:34:52 - TARGET=arm TB --- 2011-11-17 08:34:52 - TARGET_ARCH=arm TB --- 2011-11-17 08:34:52 - TZ=UTC TB --- 2011-11-17 08:34:52 - __MAKE_CONF=/dev/null TB --- 2011-11-17 0
Re: Stop scheduler on panic
On 11/17/11 11:06, Kostik Belousov wrote: > On Thu, Nov 17, 2011 at 10:40:58AM +0200, Alexander Motin wrote: >> On 11/17/11 10:15, Kostik Belousov wrote: >>> On Thu, Nov 17, 2011 at 01:07:38AM +0200, Alexander Motin wrote: On 17.11.2011 00:21, Andriy Gapon wrote: > on 16/11/2011 21:27 Fabian Keil said the following: >> Kostik Belousov wrote: >> >>> I was tricked into finishing the work by Andrey Gapon, who developed >>> the patch to reliably stop other processors on panic. The patch >>> greatly improves the chances of getting dump on panic on SMP host. >> >> I tested the patch trying to get a dump (from the debugger) for >> kern/162036, which currently results in the double fault reported in: >> http://lists.freebsd.org/pipermail/freebsd-current/2011-September/027766.html >> >> It didn't help, but also didn't make anything worse. >> >> Fabian > > The mi_switch recursion looks very familiar to me: > mi_switch() at mi_switch+0x270 > critical_exit() at critical_exit+0x9b > spinlock_exit() at spinlock_exit+0x17 > mi_switch() at mi_switch+0x275 > critical_exit() at critical_exit+0x9b > spinlock_exit() at spinlock_exit+0x17 > [several pages of the previous three lines skipped] > mi_switch() at mi_switch+0x275 > critical_exit() at critical_exit+0x9b > spinlock_exit() at spinlock_exit+0x17 > intr_even_schedule_thread() at intr_event_schedule_thread+0xbb > ahci_end_transaction() at ahci_end_transaction+0x398 > ahci_ch_intr() at ahci_ch_intr+0x2b5 > ahcipoll() at ahcipoll+0x15 > xpt_polled_action() at xpt_polled_action+0xf7 > > In fact I once discussed with jhb this recursion triggered from a > different > place. To quote myself: > spinlock_exit -> critical_exit -> mi_switch -> kdb_switch -> > thread_unlock -> spinlock_exit -> critical_exit -> mi_switch -> ... > in the kdb context > this issue seems to be triggered by td_owepreempt being true at > the time > kdb is entered > and there of course has to be an initial spinlock_exit call > somewhere > in my case it's because of usb keyboard > I wonder if it would make sense to clear td_owepreempt right > before > calling kdb_switch in mi_switch > instead of in sched_switch() > clearing td_owepreempt seems like a scheduler-independent > operation to me > or is it better to just skip locking in usb when kdb_active is > set > ? > > The workaround described above should work in this case. > Another possibility is to pessimize mtx_unlock_spin() implementations to > check > SCHEDULER_STOPPED() and to bypass any further actions in that case. But > that > would add unnecessary overhead to the sunny day code paths. > > Going further up the stack one can come up with the following proposals: > - check SCHEDULER_STOPPED() swi_sched() and return early > - do not call swi_sched() from xpt_done() if we somehow know that we are > in a > polling mode There is no flag in CAM now to indicate polling mode, but if needed, it should not be difficult to add one and not call swi_sched(). >>> >>> I have the following change for eons on my test boxes. Without it, >>> I simply cannot get _any_ dump. >>> >>> diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c >>> index 10b89c7..a38e42f 100644 >>> --- a/sys/cam/cam_xpt.c >>> +++ b/sys/cam/cam_xpt.c >>> @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) >>> TAILQ_INSERT_TAIL(&cam_simq, sim, links); >>> mtx_unlock(&cam_simq_lock); >>> sim->flags |= CAM_SIM_ON_DONEQ; >>> - if (first) >>> + if (first && panicstr == NULL) >>> swi_sched(cambio_ih, 0); >>> } >>> } >> >> That should be OK for kernel dumping. I was thinking about CAM abusing >> polling not only for dumping. But looking on cases where it does it now, >> may be it is better to rewrite them instead. > > So, should I interpret your response as 'Reviewed by" ? It feels somehow dirty to me. I don't like these global variables. If you consider it is fine, proceed, I see no much harm. But if not, I can add polling flag to the CAM. Flip a coin for me. :) -- Alexander Motin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
on 17/11/2011 10:34 Andriy Gapon said the following: > on 17/11/2011 10:15 Kostik Belousov said the following: >> I have the following change for eons on my test boxes. Without it, >> I simply cannot get _any_ dump. >> >> diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c >> index 10b89c7..a38e42f 100644 >> --- a/sys/cam/cam_xpt.c >> +++ b/sys/cam/cam_xpt.c >> @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) >> TAILQ_INSERT_TAIL(&cam_simq, sim, links); >> mtx_unlock(&cam_simq_lock); >> sim->flags |= CAM_SIM_ON_DONEQ; >> -if (first) >> +if (first && panicstr == NULL) >> swi_sched(cambio_ih, 0); >> } >> } > > I think that this (or similar) change should go into the patch and the tree. > And, BTW, I still would like to do something like the following (perhaps with td_oncpu = NOCPU and td_flags &= ~TDF_NEEDRESCHED also moved to the common code): Index: sys/kern/sched_ule.c === --- sys/kern/sched_ule.c(revision 227608) +++ sys/kern/sched_ule.c(working copy) @@ -1790,7 +1790,6 @@ sched_switch(struct thread *td, struct thread *new td->td_oncpu = NOCPU; if (!(flags & SW_PREEMPT)) td->td_flags &= ~TDF_NEEDRESCHED; - td->td_owepreempt = 0; tdq->tdq_switchcnt++; /* * The lock pointer in an idle thread should never change. Reset it Index: sys/kern/kern_synch.c === --- sys/kern/kern_synch.c (revision 227608) +++ sys/kern/kern_synch.c (working copy) @@ -406,6 +406,8 @@ mi_switch(int flags, struct thread *newtd) ("mi_switch: switch must be voluntary or involuntary")); KASSERT(newtd != curthread, ("mi_switch: preempting back to ourself")); + td->td_owepreempt = 0; + /* * Don't perform context switches from the debugger. */ Index: sys/kern/sched_4bsd.c === --- sys/kern/sched_4bsd.c (revision 227608) +++ sys/kern/sched_4bsd.c (working copy) @@ -940,7 +940,6 @@ sched_switch(struct thread *td, struct thread *new td->td_lastcpu = td->td_oncpu; if (!(flags & SW_PREEMPT)) td->td_flags &= ~TDF_NEEDRESCHED; - td->td_owepreempt = 0; td->td_oncpu = NOCPU; /* Does anybody see any potential problems with such a change? -- Andriy Gapon ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
[head tinderbox] failure on i386/pc98
TB --- 2011-11-17 07:30:00 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 07:30:00 - starting HEAD tinderbox run for i386/pc98 TB --- 2011-11-17 07:30:00 - cleaning the object tree TB --- 2011-11-17 07:30:22 - cvsupping the source tree TB --- 2011-11-17 07:30:22 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/pc98/supfile TB --- 2011-11-17 07:30:37 - building world TB --- 2011-11-17 07:30:37 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 07:30:37 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 07:30:37 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 07:30:37 - SRCCONF=/dev/null TB --- 2011-11-17 07:30:37 - TARGET=pc98 TB --- 2011-11-17 07:30:37 - TARGET_ARCH=i386 TB --- 2011-11-17 07:30:37 - TZ=UTC TB --- 2011-11-17 07:30:37 - __MAKE_CONF=/dev/null TB --- 2011-11-17 07:30:37 - cd /src TB --- 2011-11-17 07:30:37 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 07:30:38 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 09:39:02 UTC 2011 TB --- 2011-11-17 09:39:02 - generating LINT kernel config TB --- 2011-11-17 09:39:02 - cd /src/sys/pc98/conf TB --- 2011-11-17 09:39:02 - /usr/bin/make -B LINT TB --- 2011-11-17 09:39:02 - cd /src/sys/pc98/conf TB --- 2011-11-17 09:39:02 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 09:39:02 - building GENERIC kernel TB --- 2011-11-17 09:39:02 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 09:39:02 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 09:39:02 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 09:39:02 - SRCCONF=/dev/null TB --- 2011-11-17 09:39:02 - TARGET=pc98 TB --- 2011-11-17 09:39:02 - TARGET_ARCH=i386 TB --- 2011-11-17 09:39:02 - TZ=UTC TB --- 2011-11-17 09:39:02 - __MAKE_CONF=/dev/null TB --- 2011-11-17 09:39:02 - cd /src TB --- 2011-11-17 09:39:02 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 09:39:02 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] objcopy --only-keep-debug if_sf.ko.debug if_sf.ko.symbols objcopy --strip-debug --add-gnu-debuglink=if_sf.ko.symbols if_sf.ko.debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -DPC98 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/pc98.i386/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/pc98.i386/src/sys/GENERIC -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -DPC98 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/pc98.i386/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/pc98.i386/src/sys/GENERIC -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/pc98.i386/src/sys/GENERIC. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-17 09:54:30 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-17 09:54:30 - ERROR: failed to build GENERIC kernel TB --- 2011-11-17 09:54:30 - 6938.27 user 1220.23 system 8669.19 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-pc98.full
[head tinderbox] failure on i386/i386
TB --- 2011-11-17 07:30:00 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 07:30:00 - starting HEAD tinderbox run for i386/i386 TB --- 2011-11-17 07:30:00 - cleaning the object tree TB --- 2011-11-17 07:30:22 - cvsupping the source tree TB --- 2011-11-17 07:30:22 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/i386/supfile TB --- 2011-11-17 07:30:37 - building world TB --- 2011-11-17 07:30:37 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 07:30:37 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 07:30:37 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 07:30:37 - SRCCONF=/dev/null TB --- 2011-11-17 07:30:37 - TARGET=i386 TB --- 2011-11-17 07:30:37 - TARGET_ARCH=i386 TB --- 2011-11-17 07:30:37 - TZ=UTC TB --- 2011-11-17 07:30:37 - __MAKE_CONF=/dev/null TB --- 2011-11-17 07:30:37 - cd /src TB --- 2011-11-17 07:30:37 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 07:30:38 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 09:39:23 UTC 2011 TB --- 2011-11-17 09:39:23 - generating LINT kernel config TB --- 2011-11-17 09:39:23 - cd /src/sys/i386/conf TB --- 2011-11-17 09:39:23 - /usr/bin/make -B LINT TB --- 2011-11-17 09:39:23 - cd /src/sys/i386/conf TB --- 2011-11-17 09:39:23 - /usr/sbin/config -m LINT-NOINET TB --- 2011-11-17 09:39:23 - building LINT-NOINET kernel TB --- 2011-11-17 09:39:23 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 09:39:23 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 09:39:23 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 09:39:23 - SRCCONF=/dev/null TB --- 2011-11-17 09:39:23 - TARGET=i386 TB --- 2011-11-17 09:39:23 - TARGET_ARCH=i386 TB --- 2011-11-17 09:39:23 - TZ=UTC TB --- 2011-11-17 09:39:23 - __MAKE_CONF=/dev/null TB --- 2011-11-17 09:39:23 - cd /src TB --- 2011-11-17 09:39:23 - /usr/bin/make -B buildkernel KERNCONF=LINT-NOINET >>> Kernel build for LINT-NOINET started on Thu Nov 17 09:39:23 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ld -Bshareable -d -warn-common -o if_sf.ko if_sf.kld objcopy --strip-debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/i386.i386/src/sys/LINT-NOINET/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/i386.i386/src/sys/LINT-NOINET -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/i386.i386/src/sys/LINT-NOINET/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/i386.i386/src/sys/LINT-NOINET -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/i386.i386/src/sys/LINT-NOINET. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-17 10:05:16 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-17 10:05:16 - ERROR: failed to build LINT-NOINET kernel TB --- 2011-11-17 10:05:16 - 7492.04 user 1272.04 system 9315.28 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-i386.full ___
[head tinderbox] failure on ia64/ia64
TB --- 2011-11-17 09:14:51 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 09:14:51 - starting HEAD tinderbox run for ia64/ia64 TB --- 2011-11-17 09:14:51 - cleaning the object tree TB --- 2011-11-17 09:15:03 - cvsupping the source tree TB --- 2011-11-17 09:15:03 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/ia64/ia64/supfile TB --- 2011-11-17 09:15:54 - building world TB --- 2011-11-17 09:15:54 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 09:15:54 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 09:15:54 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 09:15:54 - SRCCONF=/dev/null TB --- 2011-11-17 09:15:54 - TARGET=ia64 TB --- 2011-11-17 09:15:54 - TARGET_ARCH=ia64 TB --- 2011-11-17 09:15:54 - TZ=UTC TB --- 2011-11-17 09:15:54 - __MAKE_CONF=/dev/null TB --- 2011-11-17 09:15:54 - cd /src TB --- 2011-11-17 09:15:54 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 09:15:55 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 10:42:20 UTC 2011 TB --- 2011-11-17 10:42:21 - generating LINT kernel config TB --- 2011-11-17 10:42:21 - cd /src/sys/ia64/conf TB --- 2011-11-17 10:42:21 - /usr/bin/make -B LINT TB --- 2011-11-17 10:42:21 - cd /src/sys/ia64/conf TB --- 2011-11-17 10:42:21 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 10:42:21 - building GENERIC kernel TB --- 2011-11-17 10:42:21 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 10:42:21 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 10:42:21 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 10:42:21 - SRCCONF=/dev/null TB --- 2011-11-17 10:42:21 - TARGET=ia64 TB --- 2011-11-17 10:42:21 - TARGET_ARCH=ia64 TB --- 2011-11-17 10:42:21 - TZ=UTC TB --- 2011-11-17 10:42:21 - __MAKE_CONF=/dev/null TB --- 2011-11-17 10:42:21 - cd /src TB --- 2011-11-17 10:42:21 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 10:42:21 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/ia64.ia64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/ia64.ia64/src/sys/GENERIC -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/ia64.ia64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/ia64.ia64/src/sys/GENERIC -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/ia64.ia64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/ia64.ia64/src/sys/GENERIC -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c: In function 'sfxge_ev_rx': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c:120: warning: implicit declaration of function 'prefetch_read_many' /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c:120: warning: nested extern declaration of 'prefetch_read_many' [-Wnested-externs] *** Error code 1 Stop in /src/sys/modules/
Re: Stop scheduler on panic
On Thu, Nov 17, 2011 at 11:29:02AM +0200, Alexander Motin wrote: > On 11/17/11 11:06, Kostik Belousov wrote: > > On Thu, Nov 17, 2011 at 10:40:58AM +0200, Alexander Motin wrote: > >> On 11/17/11 10:15, Kostik Belousov wrote: > >>> On Thu, Nov 17, 2011 at 01:07:38AM +0200, Alexander Motin wrote: > On 17.11.2011 00:21, Andriy Gapon wrote: > > on 16/11/2011 21:27 Fabian Keil said the following: > >> Kostik Belousov wrote: > >> > >>> I was tricked into finishing the work by Andrey Gapon, who developed > >>> the patch to reliably stop other processors on panic. The patch > >>> greatly improves the chances of getting dump on panic on SMP host. > >> > >> I tested the patch trying to get a dump (from the debugger) for > >> kern/162036, which currently results in the double fault reported in: > >> http://lists.freebsd.org/pipermail/freebsd-current/2011-September/027766.html > >> > >> It didn't help, but also didn't make anything worse. > >> > >> Fabian > > > > The mi_switch recursion looks very familiar to me: > > mi_switch() at mi_switch+0x270 > > critical_exit() at critical_exit+0x9b > > spinlock_exit() at spinlock_exit+0x17 > > mi_switch() at mi_switch+0x275 > > critical_exit() at critical_exit+0x9b > > spinlock_exit() at spinlock_exit+0x17 > > [several pages of the previous three lines skipped] > > mi_switch() at mi_switch+0x275 > > critical_exit() at critical_exit+0x9b > > spinlock_exit() at spinlock_exit+0x17 > > intr_even_schedule_thread() at intr_event_schedule_thread+0xbb > > ahci_end_transaction() at ahci_end_transaction+0x398 > > ahci_ch_intr() at ahci_ch_intr+0x2b5 > > ahcipoll() at ahcipoll+0x15 > > xpt_polled_action() at xpt_polled_action+0xf7 > > > > In fact I once discussed with jhb this recursion triggered from a > > different > > place. To quote myself: > > spinlock_exit -> critical_exit -> mi_switch -> kdb_switch -> > > thread_unlock -> spinlock_exit -> critical_exit -> mi_switch -> ... > > in the kdb context > > this issue seems to be triggered by td_owepreempt being true > > at > > the time > > kdb is entered > > and there of course has to be an initial spinlock_exit call > > somewhere > > in my case it's because of usb keyboard > > I wonder if it would make sense to clear td_owepreempt right > > before > > calling kdb_switch in mi_switch > > instead of in sched_switch() > > clearing td_owepreempt seems like a scheduler-independent > > operation to me > > or is it better to just skip locking in usb when kdb_active is > > set > > ? > > > > The workaround described above should work in this case. > > Another possibility is to pessimize mtx_unlock_spin() implementations > > to > > check > > SCHEDULER_STOPPED() and to bypass any further actions in that case. > > But > > that > > would add unnecessary overhead to the sunny day code paths. > > > > Going further up the stack one can come up with the following proposals: > > - check SCHEDULER_STOPPED() swi_sched() and return early > > - do not call swi_sched() from xpt_done() if we somehow know that we > > are > > in a > > polling mode > > There is no flag in CAM now to indicate polling mode, but if needed, it > should not be difficult to add one and not call swi_sched(). > >>> > >>> I have the following change for eons on my test boxes. Without it, > >>> I simply cannot get _any_ dump. > >>> > >>> diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > >>> index 10b89c7..a38e42f 100644 > >>> --- a/sys/cam/cam_xpt.c > >>> +++ b/sys/cam/cam_xpt.c > >>> @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > >>> TAILQ_INSERT_TAIL(&cam_simq, sim, links); > >>> mtx_unlock(&cam_simq_lock); > >>> sim->flags |= CAM_SIM_ON_DONEQ; > >>> - if (first) > >>> + if (first && panicstr == NULL) > >>> swi_sched(cambio_ih, 0); > >>> } > >>> } > >> > >> That should be OK for kernel dumping. I was thinking about CAM abusing > >> polling not only for dumping. But looking on cases where it does it now, > >> may be it is better to rewrite them instead. > > > > So, should I interpret your response as 'Reviewed by" ? > > It feels somehow dirty to me. I don't like these global variables. If > you consider it is fine, proceed, I see no much harm. But if not, I can > add polling flag to the CAM. Flip a coin for me. :) You promised to add the polling at summer' meeting in Kiev. Will you do it now ? pgpEdTAw2tcfa.pgp Description: PGP signature
ixgbe and fast interrupts
Hi everybody, trying to measure the interrupt latency of a 10G Intel network adapter, I find out that the the used driver (ixgbe) can can be configured to work with both fast and standard interrupts. From my understanding of the BUS_SETUP_INTR(9) man page and sys/kern/kern_intr.c file, it seems that drivers in need of registering fast interrupts should call bus_setup_intr() specifying a filter function instead of a handler. My question is: why ixgbe_allocate_legacy() says it is allocating a fast interrupt (comments and error messages say so) but instead passes a handler instead of a filter to pci_setup_intr()? Is there anything I am not taking into account? Regards, Matteo -- http://www.matteolandi.net/ ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
[head tinderbox] failure on powerpc/powerpc
TB --- 2011-11-17 10:05:16 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 10:05:16 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2011-11-17 10:05:16 - cleaning the object tree TB --- 2011-11-17 10:05:30 - cvsupping the source tree TB --- 2011-11-17 10:05:30 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2011-11-17 10:05:43 - building world TB --- 2011-11-17 10:05:43 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 10:05:43 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 10:05:43 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 10:05:43 - SRCCONF=/dev/null TB --- 2011-11-17 10:05:43 - TARGET=powerpc TB --- 2011-11-17 10:05:43 - TARGET_ARCH=powerpc TB --- 2011-11-17 10:05:43 - TZ=UTC TB --- 2011-11-17 10:05:43 - __MAKE_CONF=/dev/null TB --- 2011-11-17 10:05:43 - cd /src TB --- 2011-11-17 10:05:43 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 10:05:43 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 12:03:15 UTC 2011 TB --- 2011-11-17 12:03:15 - generating LINT kernel config TB --- 2011-11-17 12:03:15 - cd /src/sys/powerpc/conf TB --- 2011-11-17 12:03:15 - /usr/bin/make -B LINT TB --- 2011-11-17 12:03:15 - cd /src/sys/powerpc/conf TB --- 2011-11-17 12:03:15 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 12:03:16 - building GENERIC kernel TB --- 2011-11-17 12:03:16 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 12:03:16 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 12:03:16 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 12:03:16 - SRCCONF=/dev/null TB --- 2011-11-17 12:03:16 - TARGET=powerpc TB --- 2011-11-17 12:03:16 - TARGET_ARCH=powerpc TB --- 2011-11-17 12:03:16 - TZ=UTC TB --- 2011-11-17 12:03:16 - __MAKE_CONF=/dev/null TB --- 2011-11-17 12:03:16 - cd /src TB --- 2011-11-17 12:03:16 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 12:03:16 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] objcopy --only-keep-debug if_sf.ko.debug if_sf.ko.symbols objcopy --strip-debug --add-gnu-debuglink=if_sf.ko.symbols if_sf.ko.debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc/src/sys/GENERIC -msoft-float -mno-altivec -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc/src/sys/GENERIC -msoft-float -mno-altivec -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/powerpc.powerpc/src/sys/GENERIC. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-17 12:16:41 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-17 12:16:41 - ERROR: failed to build GENERIC kernel TB --- 2011-11-17 12:16:41 - 6279.67 user 1097.94 system 7885.10 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full __
[head tinderbox] failure on sparc64/sparc64
TB --- 2011-11-17 11:01:15 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 11:01:15 - starting HEAD tinderbox run for sparc64/sparc64 TB --- 2011-11-17 11:01:15 - cleaning the object tree TB --- 2011-11-17 11:01:26 - cvsupping the source tree TB --- 2011-11-17 11:01:26 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/sparc64/sparc64/supfile TB --- 2011-11-17 11:01:38 - building world TB --- 2011-11-17 11:01:38 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 11:01:38 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 11:01:38 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 11:01:38 - SRCCONF=/dev/null TB --- 2011-11-17 11:01:38 - TARGET=sparc64 TB --- 2011-11-17 11:01:38 - TARGET_ARCH=sparc64 TB --- 2011-11-17 11:01:38 - TZ=UTC TB --- 2011-11-17 11:01:38 - __MAKE_CONF=/dev/null TB --- 2011-11-17 11:01:38 - cd /src TB --- 2011-11-17 11:01:38 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 11:01:38 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 12:05:07 UTC 2011 TB --- 2011-11-17 12:05:07 - generating LINT kernel config TB --- 2011-11-17 12:05:07 - cd /src/sys/sparc64/conf TB --- 2011-11-17 12:05:07 - /usr/bin/make -B LINT TB --- 2011-11-17 12:05:07 - cd /src/sys/sparc64/conf TB --- 2011-11-17 12:05:07 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 12:05:07 - building GENERIC kernel TB --- 2011-11-17 12:05:07 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 12:05:07 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 12:05:07 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 12:05:07 - SRCCONF=/dev/null TB --- 2011-11-17 12:05:07 - TARGET=sparc64 TB --- 2011-11-17 12:05:07 - TARGET_ARCH=sparc64 TB --- 2011-11-17 12:05:07 - TZ=UTC TB --- 2011-11-17 12:05:07 - __MAKE_CONF=/dev/null TB --- 2011-11-17 12:05:07 - cd /src TB --- 2011-11-17 12:05:07 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 12:05:07 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/sparc64.sparc64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/sparc64.sparc64/src/sys/GENERIC -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/sparc64.sparc64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/sparc64.sparc64/src/sys/GENERIC -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/sparc64.sparc64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/sparc64.sparc64/src/sys/GENERIC -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c: In function 'sfxge_ev_rx': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c:120: warning: implicit declaration of function 'prefetch_read_many' /src/sys/modules/sfxge/../../dev/sfx
Re: Stop scheduler on panic
On 11/17/11 13:14, Kostik Belousov wrote: > On Thu, Nov 17, 2011 at 11:29:02AM +0200, Alexander Motin wrote: >> On 11/17/11 11:06, Kostik Belousov wrote: >>> On Thu, Nov 17, 2011 at 10:40:58AM +0200, Alexander Motin wrote: On 11/17/11 10:15, Kostik Belousov wrote: > On Thu, Nov 17, 2011 at 01:07:38AM +0200, Alexander Motin wrote: >> On 17.11.2011 00:21, Andriy Gapon wrote: >>> on 16/11/2011 21:27 Fabian Keil said the following: Kostik Belousov wrote: > I was tricked into finishing the work by Andrey Gapon, who developed > the patch to reliably stop other processors on panic. The patch > greatly improves the chances of getting dump on panic on SMP host. I tested the patch trying to get a dump (from the debugger) for kern/162036, which currently results in the double fault reported in: http://lists.freebsd.org/pipermail/freebsd-current/2011-September/027766.html It didn't help, but also didn't make anything worse. Fabian >>> >>> The mi_switch recursion looks very familiar to me: >>> mi_switch() at mi_switch+0x270 >>> critical_exit() at critical_exit+0x9b >>> spinlock_exit() at spinlock_exit+0x17 >>> mi_switch() at mi_switch+0x275 >>> critical_exit() at critical_exit+0x9b >>> spinlock_exit() at spinlock_exit+0x17 >>> [several pages of the previous three lines skipped] >>> mi_switch() at mi_switch+0x275 >>> critical_exit() at critical_exit+0x9b >>> spinlock_exit() at spinlock_exit+0x17 >>> intr_even_schedule_thread() at intr_event_schedule_thread+0xbb >>> ahci_end_transaction() at ahci_end_transaction+0x398 >>> ahci_ch_intr() at ahci_ch_intr+0x2b5 >>> ahcipoll() at ahcipoll+0x15 >>> xpt_polled_action() at xpt_polled_action+0xf7 >>> >>> In fact I once discussed with jhb this recursion triggered from a >>> different >>> place. To quote myself: >>> spinlock_exit -> critical_exit -> mi_switch -> kdb_switch -> >>> thread_unlock -> spinlock_exit -> critical_exit -> mi_switch -> ... >>> in the kdb context >>> this issue seems to be triggered by td_owepreempt being true >>> at >>> the time >>> kdb is entered >>> and there of course has to be an initial spinlock_exit call >>> somewhere >>> in my case it's because of usb keyboard >>> I wonder if it would make sense to clear td_owepreempt right >>> before >>> calling kdb_switch in mi_switch >>> instead of in sched_switch() >>> clearing td_owepreempt seems like a scheduler-independent >>> operation to me >>> or is it better to just skip locking in usb when kdb_active is >>> set >>> ? >>> >>> The workaround described above should work in this case. >>> Another possibility is to pessimize mtx_unlock_spin() implementations >>> to >>> check >>> SCHEDULER_STOPPED() and to bypass any further actions in that case. >>> But >>> that >>> would add unnecessary overhead to the sunny day code paths. >>> >>> Going further up the stack one can come up with the following proposals: >>> - check SCHEDULER_STOPPED() swi_sched() and return early >>> - do not call swi_sched() from xpt_done() if we somehow know that we >>> are >>> in a >>> polling mode >> >> There is no flag in CAM now to indicate polling mode, but if needed, it >> should not be difficult to add one and not call swi_sched(). > > I have the following change for eons on my test boxes. Without it, > I simply cannot get _any_ dump. > > diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > index 10b89c7..a38e42f 100644 > --- a/sys/cam/cam_xpt.c > +++ b/sys/cam/cam_xpt.c > @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > TAILQ_INSERT_TAIL(&cam_simq, sim, links); > mtx_unlock(&cam_simq_lock); > sim->flags |= CAM_SIM_ON_DONEQ; > - if (first) > + if (first && panicstr == NULL) > swi_sched(cambio_ih, 0); > } > } That should be OK for kernel dumping. I was thinking about CAM abusing polling not only for dumping. But looking on cases where it does it now, may be it is better to rewrite them instead. >>> >>> So, should I interpret your response as 'Reviewed by" ? >> >> It feels somehow dirty to me. I don't like these global variables. If >> you consider it is fine, proceed, I see no much harm. But if not, I can >> add polling flag to the CAM. Flip a coin for me. :) > You promised to add the polling at summer' meeting in Kiev. Will you do > it now ? Sorry, I've probably forgot. The patch is attached. -- Alexander Motin Index: cam_sim.h ===
[head tinderbox] failure on powerpc64/powerpc
TB --- 2011-11-17 10:53:01 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 10:53:01 - starting HEAD tinderbox run for powerpc64/powerpc TB --- 2011-11-17 10:53:01 - cleaning the object tree TB --- 2011-11-17 10:53:18 - cvsupping the source tree TB --- 2011-11-17 10:53:18 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc64/powerpc/supfile TB --- 2011-11-17 10:54:05 - building world TB --- 2011-11-17 10:54:05 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 10:54:05 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 10:54:05 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 10:54:05 - SRCCONF=/dev/null TB --- 2011-11-17 10:54:05 - TARGET=powerpc TB --- 2011-11-17 10:54:05 - TARGET_ARCH=powerpc64 TB --- 2011-11-17 10:54:05 - TZ=UTC TB --- 2011-11-17 10:54:05 - __MAKE_CONF=/dev/null TB --- 2011-11-17 10:54:05 - cd /src TB --- 2011-11-17 10:54:05 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 10:54:06 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> stage 5.1: building 32 bit shim libraries >>> World build completed on Thu Nov 17 12:29:05 UTC 2011 TB --- 2011-11-17 12:29:05 - generating LINT kernel config TB --- 2011-11-17 12:29:05 - cd /src/sys/powerpc/conf TB --- 2011-11-17 12:29:05 - /usr/bin/make -B LINT TB --- 2011-11-17 12:29:05 - cd /src/sys/powerpc/conf TB --- 2011-11-17 12:29:05 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 12:29:05 - skipping GENERIC kernel TB --- 2011-11-17 12:29:05 - cd /src/sys/powerpc/conf TB --- 2011-11-17 12:29:05 - /usr/sbin/config -m GENERIC64 TB --- 2011-11-17 12:29:05 - building GENERIC64 kernel TB --- 2011-11-17 12:29:05 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 12:29:05 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 12:29:05 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 12:29:05 - SRCCONF=/dev/null TB --- 2011-11-17 12:29:05 - TARGET=powerpc TB --- 2011-11-17 12:29:05 - TARGET_ARCH=powerpc64 TB --- 2011-11-17 12:29:05 - TZ=UTC TB --- 2011-11-17 12:29:05 - __MAKE_CONF=/dev/null TB --- 2011-11-17 12:29:05 - cd /src TB --- 2011-11-17 12:29:05 - /usr/bin/make -B buildkernel KERNCONF=GENERIC64 >>> Kernel build for GENERIC64 started on Thu Nov 17 12:29:05 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc64/src/sys/GENERIC64/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc64/src/sys/GENERIC64 -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc64/src/sys/GENERIC64/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc64/src/sys/GENERIC64 -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc64/src/sys/GENERIC64/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc64/src/sys/GENERIC64 -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -ffo
spamcop abuse of power
Today I had an unhappy unix student try to submit an assignment to me and could not. Spamcop has decided to go off blacklisting all yahoo/shaw etc servers worldwide. Example Solution Postfix: remove: reject_rbl_client bl.spamcop.net from your smtpd_recipient_restrictions line until they fix their abuse issues. Dan. -- Dan The Man CTO/ Senior System Administrator Websites, Domains and Everything else http://www.SunSaturn.com Email: d...@sunsaturn.com ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
[head tinderbox] failure on arm/arm
TB --- 2011-11-17 12:50:00 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 12:50:00 - starting HEAD tinderbox run for arm/arm TB --- 2011-11-17 12:50:00 - cleaning the object tree TB --- 2011-11-17 12:50:29 - cvsupping the source tree TB --- 2011-11-17 12:50:29 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/arm/arm/supfile TB --- 2011-11-17 12:50:57 - building world TB --- 2011-11-17 12:50:57 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 12:50:57 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 12:50:57 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 12:50:57 - SRCCONF=/dev/null TB --- 2011-11-17 12:50:57 - TARGET=arm TB --- 2011-11-17 12:50:57 - TARGET_ARCH=arm TB --- 2011-11-17 12:50:57 - TZ=UTC TB --- 2011-11-17 12:50:57 - __MAKE_CONF=/dev/null TB --- 2011-11-17 12:50:57 - cd /src TB --- 2011-11-17 12:50:57 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 12:50:57 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 13:45:59 UTC 2011 TB --- 2011-11-17 13:46:00 - cd /src/sys/arm/conf TB --- 2011-11-17 13:46:00 - /usr/sbin/config -m AVILA TB --- 2011-11-17 13:46:00 - building AVILA kernel TB --- 2011-11-17 13:46:00 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 13:46:00 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 13:46:00 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 13:46:00 - SRCCONF=/dev/null TB --- 2011-11-17 13:46:00 - TARGET=arm TB --- 2011-11-17 13:46:00 - TARGET_ARCH=arm TB --- 2011-11-17 13:46:00 - TZ=UTC TB --- 2011-11-17 13:46:00 - __MAKE_CONF=/dev/null TB --- 2011-11-17 13:46:00 - cd /src TB --- 2011-11-17 13:46:00 - /usr/bin/make -B buildkernel KERNCONF=AVILA >>> Kernel build for AVILA started on Thu Nov 17 13:46:00 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for AVILA completed on Thu Nov 17 13:49:02 UTC 2011 TB --- 2011-11-17 13:49:02 - cd /src/sys/arm/conf TB --- 2011-11-17 13:49:02 - /usr/sbin/config -m BWCT TB --- 2011-11-17 13:49:02 - building BWCT kernel TB --- 2011-11-17 13:49:02 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 13:49:02 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 13:49:02 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 13:49:02 - SRCCONF=/dev/null TB --- 2011-11-17 13:49:02 - TARGET=arm TB --- 2011-11-17 13:49:02 - TARGET_ARCH=arm TB --- 2011-11-17 13:49:02 - TZ=UTC TB --- 2011-11-17 13:49:02 - __MAKE_CONF=/dev/null TB --- 2011-11-17 13:49:02 - cd /src TB --- 2011-11-17 13:49:02 - /usr/bin/make -B buildkernel KERNCONF=BWCT >>> Kernel build for BWCT started on Thu Nov 17 13:49:02 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for BWCT completed on Thu Nov 17 13:51:13 UTC 2011 TB --- 2011-11-17 13:51:13 - cd /src/sys/arm/conf TB --- 2011-11-17 13:51:13 - /usr/sbin/config -m CAMBRIA TB --- 2011-11-17 13:51:13 - building CAMBRIA kernel TB --- 2011-11-17 13:51:13 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 13:51:13 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 13:51:13 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 13:51:13 - SRCCONF=/dev/null TB --- 2011-11-17 13:51:13 - TARGET=arm TB --- 2011-11-17 13:51:13 - TARGET_ARCH=arm TB --- 2011-11-17 13:51:13 - TZ=UTC TB --- 2011-11-17 13:51:13 - __MAKE_CONF=/dev/null TB --- 2011-11-17 13:51:13 - cd /src TB --- 2011-11-17 13:51:13 - /usr/bin/make -B buildkernel KERNCONF=CAMBRIA >>> Kernel build for CAMBRIA started on Thu Nov 17 13:51:13 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for CAMBRIA completed on Thu Nov 17 13:54:38 UTC 2011 TB --- 2011-11-17 13:54:38 - cd /src/sys/arm/conf TB --- 2011-11-17 13:54:38 - /usr/sbin/config -m CNS11XXNAS TB --- 2011-11-17 13:54:38 - building CNS11XXNAS kernel TB --- 2011-11-17 13:54:38 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 13:54:38 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 13:54:38 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 13:54:38 - SRCCONF=/dev/null TB --- 2011-11-17 13:54:38 - TARGET=arm TB --- 2011-11-17 13:54:38 - TARGET_ARCH=arm TB --- 2011-11-17 13:54:38 - TZ=UTC TB --- 2011-11-17 13:54:38 - __MAKE_CONF=/dev/null TB --- 2011-11-17 1
Can't install FreeBSD-amd64-9.0-RC2: "/mnt: out of inodes"
Hi all, I tried to install FreeBSD-9.0-RC2-amd64-dvd1.iso (SHA256 verified) on a VM and meet a reproducible problem: The VM has 128Mo RAM and a 4Go hard drive. During install process I choose these distribution sets: ports and src only. And I'm using guided partitioning / Entire Disk / All Auto But each time (I delete and re-create a new VM multiple times) the installer failed during archive extraction of ports.txz (at about 88% progress of this file extraction) with this message: Error while extracting ports.txz: Can't create 'usr/ports/databases/p5-DBIx-Sunny/pkg-plist' And on the background there is this message: ...on /mnt: out of inodes Can someone else confirm this problem before I fill a PR ? Regards, Olivier ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: ixgbe and fast interrupts
The comments haven't kept up with the code. You are correct; in the legacy interrupt case ixgbe is using an ITHREAD, not a fast handler. ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: ixgbe and fast interrupts
On Thursday, November 17, 2011 6:38:21 am Matteo Landi wrote: > Hi everybody, > > trying to measure the interrupt latency of a 10G Intel network > adapter, I find out that the the used driver (ixgbe) can can be > configured to work with both fast and standard interrupts. From my > understanding of the BUS_SETUP_INTR(9) man page and > sys/kern/kern_intr.c file, it seems that drivers in need of > registering fast interrupts should call bus_setup_intr() specifying a > filter function instead of a handler. > > My question is: why ixgbe_allocate_legacy() says it is allocating a > fast interrupt (comments and error messages say so) but instead passes > a handler instead of a filter to pci_setup_intr()? Is there anything I > am not taking into account? It is not a fast handler and is not using the fast handler stuff. OTOH, you probably want to be using MSI-X for a 10G NIC instead of INTx anyway. -- John Baldwin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: [PATCH] Detect GNU/kFreeBSD in user-visible kernel headers
On Thursday, November 17, 2011 1:46:33 am Robert Millan wrote: > 2011/11/16 Warner Losh : > > My second reaction was why not have > > > > #ifndef __FreeBSD_kernel__ > > #define __FreeBSD_kernel__ __FreeBSD__ > > #endif > > > > in sys/param.h and then just change __FreeBSD__ to __FreeBSD_kernel__ in > > the headers that are affected? But I'm not quite sure what effects that would have on your environment. > > I'm fine with this. > > > Why do you think people wouldn't be fond of the __FreeBSD_kernel__ being > > defined? > > See archived discussion: > > http://lists.freebsd.org/pipermail/freebsd-hackers/2011-July/035721.html > > particularly this mail in which you participated: > > http://lists.freebsd.org/pipermail/freebsd-hackers/2011-July/035823.html I recall the discussion from earlier. I can't recall if I had replied to it though. :-/ In my current opinion, I think it would be fine to define __FreeBSD_kernel__ on FreeBSD and to do it in for now until all the compilers we use have been updated to define it automatically (which may be a long time). I think it will also be fine to patch in-system headers to use __FreeBSD_kernel__ once is defined. Unfortunately headers in 3rd party software are going to have to check for both __FreeBSD__ and __FreeBSD_kernel__ to support both GNU/kFreeBSD and older FreeBSD for the foreseeable future. I think that is fine, but that the sooner we add __FreeBSD_kernel__ on FreeBSD the sooner we get the clock started for a day when those extra checks can go away. I would also be fine with MFC'ing the addition of __FreeBSD_kernel__ to older branches (at least 7 - 9) as well. -- John Baldwin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
[head tinderbox] failure on i386/pc98
TB --- 2011-11-17 12:50:00 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 12:50:00 - starting HEAD tinderbox run for i386/pc98 TB --- 2011-11-17 12:50:00 - cleaning the object tree TB --- 2011-11-17 12:50:28 - cvsupping the source tree TB --- 2011-11-17 12:50:28 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/pc98/supfile TB --- 2011-11-17 12:50:57 - building world TB --- 2011-11-17 12:50:57 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 12:50:57 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 12:50:57 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 12:50:57 - SRCCONF=/dev/null TB --- 2011-11-17 12:50:57 - TARGET=pc98 TB --- 2011-11-17 12:50:57 - TARGET_ARCH=i386 TB --- 2011-11-17 12:50:57 - TZ=UTC TB --- 2011-11-17 12:50:57 - __MAKE_CONF=/dev/null TB --- 2011-11-17 12:50:57 - cd /src TB --- 2011-11-17 12:50:57 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 12:50:57 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 15:00:26 UTC 2011 TB --- 2011-11-17 15:00:27 - generating LINT kernel config TB --- 2011-11-17 15:00:27 - cd /src/sys/pc98/conf TB --- 2011-11-17 15:00:27 - /usr/bin/make -B LINT TB --- 2011-11-17 15:00:27 - cd /src/sys/pc98/conf TB --- 2011-11-17 15:00:27 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 15:00:27 - building GENERIC kernel TB --- 2011-11-17 15:00:27 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 15:00:27 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 15:00:27 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 15:00:27 - SRCCONF=/dev/null TB --- 2011-11-17 15:00:27 - TARGET=pc98 TB --- 2011-11-17 15:00:27 - TARGET_ARCH=i386 TB --- 2011-11-17 15:00:27 - TZ=UTC TB --- 2011-11-17 15:00:27 - __MAKE_CONF=/dev/null TB --- 2011-11-17 15:00:27 - cd /src TB --- 2011-11-17 15:00:27 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 15:00:27 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] objcopy --only-keep-debug if_sf.ko.debug if_sf.ko.symbols objcopy --strip-debug --add-gnu-debuglink=if_sf.ko.symbols if_sf.ko.debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -DPC98 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/pc98.i386/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/pc98.i386/src/sys/GENERIC -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -DPC98 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/pc98.i386/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/pc98.i386/src/sys/GENERIC -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/pc98.i386/src/sys/GENERIC. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-17 15:16:18 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-17 15:16:18 - ERROR: failed to build GENERIC kernel TB --- 2011-11-17 15:16:18 - 7006.38 user 1243.28 system 8777.84 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-pc98.full
[head tinderbox] failure on i386/i386
TB --- 2011-11-17 12:50:00 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 12:50:00 - starting HEAD tinderbox run for i386/i386 TB --- 2011-11-17 12:50:00 - cleaning the object tree TB --- 2011-11-17 12:50:28 - cvsupping the source tree TB --- 2011-11-17 12:50:28 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/i386/supfile TB --- 2011-11-17 12:50:55 - building world TB --- 2011-11-17 12:50:55 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 12:50:55 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 12:50:55 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 12:50:55 - SRCCONF=/dev/null TB --- 2011-11-17 12:50:55 - TARGET=i386 TB --- 2011-11-17 12:50:55 - TARGET_ARCH=i386 TB --- 2011-11-17 12:50:55 - TZ=UTC TB --- 2011-11-17 12:50:55 - __MAKE_CONF=/dev/null TB --- 2011-11-17 12:50:55 - cd /src TB --- 2011-11-17 12:50:55 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 12:50:57 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 15:00:46 UTC 2011 TB --- 2011-11-17 15:00:46 - generating LINT kernel config TB --- 2011-11-17 15:00:46 - cd /src/sys/i386/conf TB --- 2011-11-17 15:00:46 - /usr/bin/make -B LINT TB --- 2011-11-17 15:00:47 - cd /src/sys/i386/conf TB --- 2011-11-17 15:00:47 - /usr/sbin/config -m LINT-NOINET TB --- 2011-11-17 15:00:47 - building LINT-NOINET kernel TB --- 2011-11-17 15:00:47 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 15:00:47 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 15:00:47 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 15:00:47 - SRCCONF=/dev/null TB --- 2011-11-17 15:00:47 - TARGET=i386 TB --- 2011-11-17 15:00:47 - TARGET_ARCH=i386 TB --- 2011-11-17 15:00:47 - TZ=UTC TB --- 2011-11-17 15:00:47 - __MAKE_CONF=/dev/null TB --- 2011-11-17 15:00:47 - cd /src TB --- 2011-11-17 15:00:47 - /usr/bin/make -B buildkernel KERNCONF=LINT-NOINET >>> Kernel build for LINT-NOINET started on Thu Nov 17 15:00:47 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ld -Bshareable -d -warn-common -o if_sf.ko if_sf.kld objcopy --strip-debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/i386.i386/src/sys/LINT-NOINET/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/i386.i386/src/sys/LINT-NOINET -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/i386.i386/src/sys/LINT-NOINET/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/i386.i386/src/sys/LINT-NOINET -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/i386.i386/src/sys/LINT-NOINET. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-17 15:27:00 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-17 15:27:00 - ERROR: failed to build LINT-NOINET kernel TB --- 2011-11-17 15:27:00 - 7566.49 user 1288.35 system 9419.92 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-i386.full ___
Re: [RFC] ahci(4) patch
On 11/17/11 01:08, Maksim Yevmenkin wrote: > On Wed, Nov 16, 2011 at 2:59 PM, Alexander Motin wrote: >> On 17.11.2011 00:44, Maksim Yevmenkin wrote: >>> >>> On Wed, Nov 16, 2011 at 2:35 PM, Alexander Motin wrote: On 16.11.2011 23:59, Maksim Yevmenkin wrote: > > would anyone object to the following ahci(4) patch? > > == > > --- ahci.c.orig 2011-11-16 21:35:26.0 + > +++ ahci.c 2011-11-16 21:35:41.0 + > @@ -500,7 +500,7 @@ >for (unit = 0; unitchannels; unit++) { >if ((ctlr->ichannels&(1< continue; > - child = device_add_child(dev, "ahcich", -1); > + child = device_add_child(dev, "ahcich", unit); >if (child == NULL) >device_printf(dev, "failed to add channel > device\n"); >else > > == > > the idea is to have "static" numbering for ada(4) disks. I do. The only way I see this useful is if you have BIOS configured for non-hot-swappable disks, in which case you have some AHCI channels disabled, but want to keep numbers of the rest. While I don't like this mode in general, especially when it can't be disabled, that patch could be useful in these cases. But in other cases, when you have several AHCI controllers, it just wont not work. You will receive error on attempt to create second ahcich0. >>> >>> shouldn't achcichX be destroyed when disk is detached/removed/etc.? >> >> List of implemented AHCI channels to expose as ahcichX set by BIOS in >> vendor-specific way, but only during boot and not by many BIOSes. Destroying >> them on disk detach theoretically possible, but IMHO not right, as bus >> doesn't disappear on disk disconnect. >> >>> the particular problem i'm trying to address is disk re-numbering when >>> one of the disks fails/removed/etc. i'm trying to use hints to wire >>> disks to controllers/busses. it works perfectly fine with da(4) disks >>> (even hot swappable ones) , but i can not make it to work with ada(4) >>> disks. i'm perfectly fine to hid this under some sort of option >>> (something similar to ATA_STATIC_ID, AHCI_STATIC_ID for example) >> >> Wiring works for adaX also, unless your BIOS is so "intelligent" to report >> unconnected ports and not impliemented.. You should just wire CAM buses to >> ahcichX, not to ahciX. It could be done in other way changing just by one >> line around xpt_bus_register(), but now it is done so. > > ok. then i must be missing something, here is what i have in device.hints > > hint.scbus.0.at="umass-sim0" > hint.scbus.1.at="ahcich0" > hint.scbus.2.at="ahcich1" > hint.scbus.3.at="ahcich2" > hint.scbus.4.at="ahcich3" > hint.scbus.5.at="ahcich4" > hint.scbus.6.at="ahcich5" > > hint.da.0.at="scbus0" > hint.ada.0.at="scbus1" > hint.ada.1.at="scbus2" > hint.ada.2.at="scbus3" > hint.ada.3.at="scbus4" > hint.ada.4.at="scbus5" > hint.ada.5.at="scbus6" > > this is for 6-port ahci(4) compatible controller (intel) on the > motherboard. no matter which achi(4) ports are connected, resulted > adaX devices are always sequential starting from ada0. so, the > question is: what am i doing wrong here? Just put your lines into my loader.conf and got this: %camcontrol devlist -v scbus1 on ahcich0 bus 0: at scbus1 target 0 lun 0 (pass0,ada0) <> at scbus1 target -1 lun -1 () scbus2 on ahcich1 bus 0: <> at scbus2 target -1 lun -1 () scbus3 on ahcich2 bus 0: at scbus3 target 0 lun 0 (pass1,ada2) <> at scbus3 target -1 lun -1 () scbus4 on ahcich3 bus 0: <> at scbus4 target -1 lun -1 () scbus5 on ahcich4 bus 0: <> at scbus5 target -1 lun -1 () scbus6 on ahcich5 bus 0: <> at scbus6 target -1 lun -1 () ... I see no problem. What am I doing wrong? Let me repeat question not asked directly: Does your BIOS reports unused AHCI channels as implemented? Do you always have all 6 ahcich devices or not? -- Alexander Motin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
[head tinderbox] failure on ia64/ia64
TB --- 2011-11-17 14:35:10 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 14:35:10 - starting HEAD tinderbox run for ia64/ia64 TB --- 2011-11-17 14:35:10 - cleaning the object tree TB --- 2011-11-17 14:35:23 - cvsupping the source tree TB --- 2011-11-17 14:35:23 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/ia64/ia64/supfile TB --- 2011-11-17 14:35:35 - building world TB --- 2011-11-17 14:35:35 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 14:35:35 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 14:35:35 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 14:35:35 - SRCCONF=/dev/null TB --- 2011-11-17 14:35:35 - TARGET=ia64 TB --- 2011-11-17 14:35:35 - TARGET_ARCH=ia64 TB --- 2011-11-17 14:35:35 - TZ=UTC TB --- 2011-11-17 14:35:35 - __MAKE_CONF=/dev/null TB --- 2011-11-17 14:35:35 - cd /src TB --- 2011-11-17 14:35:35 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 14:35:35 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 16:04:13 UTC 2011 TB --- 2011-11-17 16:04:14 - generating LINT kernel config TB --- 2011-11-17 16:04:14 - cd /src/sys/ia64/conf TB --- 2011-11-17 16:04:14 - /usr/bin/make -B LINT TB --- 2011-11-17 16:04:14 - cd /src/sys/ia64/conf TB --- 2011-11-17 16:04:14 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 16:04:14 - building GENERIC kernel TB --- 2011-11-17 16:04:14 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 16:04:14 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 16:04:14 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 16:04:14 - SRCCONF=/dev/null TB --- 2011-11-17 16:04:14 - TARGET=ia64 TB --- 2011-11-17 16:04:14 - TARGET_ARCH=ia64 TB --- 2011-11-17 16:04:14 - TZ=UTC TB --- 2011-11-17 16:04:14 - __MAKE_CONF=/dev/null TB --- 2011-11-17 16:04:14 - cd /src TB --- 2011-11-17 16:04:14 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 16:04:14 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/ia64.ia64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/ia64.ia64/src/sys/GENERIC -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/ia64.ia64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/ia64.ia64/src/sys/GENERIC -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/ia64.ia64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/ia64.ia64/src/sys/GENERIC -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c: In function 'sfxge_ev_rx': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c:120: warning: implicit declaration of function 'prefetch_read_many' /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c:120: warning: nested extern declaration of 'prefetch_read_many' [-Wnested-externs] *** Error code 1 Stop in /src/sys/modules/
Re: [amd64] Reproducible cold boot failure (reboot succeeds) in -CURRENT
On Thursday, November 17, 2011 3:59:43 am Stefan Esser wrote: > Am 16.11.2011 17:16, schrieb John Baldwin: > > On Sunday, November 13, 2011 12:56:12 pm Stefan Esser wrote: > >> ... > >> WARNING: WITNESS option enabled, expect reduced performance. > >> Table 'FACP' at 0xba918a58 > >> Table 'APIC' at 0xba918b50 > >> Table 'SSDT' at 0xba918be8 > >> Table 'MCFG' at 0xba918dc0 > >> Table 'HPET' at 0xba918e00 > >> ACPI: No SRAT table found > >> Preloaded elf kernel "/boot/kernel/kernel" at 0x81109000 > >> Preloaded elf obj module "/boot/kernel/zfs.ko" at 0x81109370 <-- > >> kldload: unexpected relocation type 67108875 > >> kernel trap 12 with interrupts disabled > >> > >> The irritating detail is the load address of "zfs.ko", which is just > >> 0x370 bytes above the kernel load address ... > > > > That isn't unusual. Those are the addresses of the metadata provided by > > the > > loader, not the base address of the kernel or zfs.ko object themselves. > > The > > unexpected relocation type is interesting however. That value in hex is > > 0x40b. 0xb is the R_X86_64_32S relocation type which is normal for the > > kernel. I think you just have a single-bit memory error due to a failing > > DIMM. > > Thanks for the information about the load address semantics. The other > unexpected relocation type I observed was 268435457 == 0x1001, which > also hints at a single bit error. But today the system failed with a > different error: > > ath0: ... > ioapic0: routing interrupt 18 to ... > panic: vm_page_insert: page already inserted > > This could of course also be caused by a single bit error ... Yes, very likely. > Hmmm, perhaps there is a problem with components at room temperature > and the system is still significantly warmer after 3 hours? Yes, I strongly suspect it is a thermal effect that the RAM "works" once it is warmed up. If you have data you care about on the machine, I would just go ahead and replace the RAM now before waiting for the RAM's failure to become worse. -- John Baldwin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: [RFC] ahci(4) patch
On Thu, Nov 17, 2011 at 8:09 AM, Alexander Motin wrote: > On 11/17/11 01:08, Maksim Yevmenkin wrote: >> On Wed, Nov 16, 2011 at 2:59 PM, Alexander Motin wrote: >>> On 17.11.2011 00:44, Maksim Yevmenkin wrote: On Wed, Nov 16, 2011 at 2:35 PM, Alexander Motin wrote: > > On 16.11.2011 23:59, Maksim Yevmenkin wrote: >> >> would anyone object to the following ahci(4) patch? >> >> == >> >> --- ahci.c.orig 2011-11-16 21:35:26.0 + >> +++ ahci.c 2011-11-16 21:35:41.0 + >> @@ -500,7 +500,7 @@ >> for (unit = 0; unit< ctlr->channels; unit++) { >> if ((ctlr->ichannels& (1<< unit)) == 0) >> continue; >> - child = device_add_child(dev, "ahcich", -1); >> + child = device_add_child(dev, "ahcich", unit); >> if (child == NULL) >> device_printf(dev, "failed to add channel >> device\n"); >> else >> >> == >> >> the idea is to have "static" numbering for ada(4) disks. > > I do. The only way I see this useful is if you have BIOS configured for > non-hot-swappable disks, in which case you have some AHCI channels > disabled, > but want to keep numbers of the rest. While I don't like this mode in > general, especially when it can't be disabled, that patch could be useful > in > these cases. But in other cases, when you have several AHCI controllers, > it > just wont not work. You will receive error on attempt to create second > ahcich0. shouldn't achcichX be destroyed when disk is detached/removed/etc.? >>> >>> List of implemented AHCI channels to expose as ahcichX set by BIOS in >>> vendor-specific way, but only during boot and not by many BIOSes. Destroying >>> them on disk detach theoretically possible, but IMHO not right, as bus >>> doesn't disappear on disk disconnect. >>> the particular problem i'm trying to address is disk re-numbering when one of the disks fails/removed/etc. i'm trying to use hints to wire disks to controllers/busses. it works perfectly fine with da(4) disks (even hot swappable ones) , but i can not make it to work with ada(4) disks. i'm perfectly fine to hid this under some sort of option (something similar to ATA_STATIC_ID, AHCI_STATIC_ID for example) >>> >>> Wiring works for adaX also, unless your BIOS is so "intelligent" to report >>> unconnected ports and not impliemented.. You should just wire CAM buses to >>> ahcichX, not to ahciX. It could be done in other way changing just by one >>> line around xpt_bus_register(), but now it is done so. >> >> ok. then i must be missing something, here is what i have in device.hints >> >> hint.scbus.0.at="umass-sim0" >> hint.scbus.1.at="ahcich0" >> hint.scbus.2.at="ahcich1" >> hint.scbus.3.at="ahcich2" >> hint.scbus.4.at="ahcich3" >> hint.scbus.5.at="ahcich4" >> hint.scbus.6.at="ahcich5" >> >> hint.da.0.at="scbus0" >> hint.ada.0.at="scbus1" >> hint.ada.1.at="scbus2" >> hint.ada.2.at="scbus3" >> hint.ada.3.at="scbus4" >> hint.ada.4.at="scbus5" >> hint.ada.5.at="scbus6" >> >> this is for 6-port ahci(4) compatible controller (intel) on the >> motherboard. no matter which achi(4) ports are connected, resulted >> adaX devices are always sequential starting from ada0. so, the >> question is: what am i doing wrong here? > > Just put your lines into my loader.conf and got this: > > %camcontrol devlist -v > scbus1 on ahcich0 bus 0: > at scbus1 target 0 lun 0 (pass0,ada0) > <> at scbus1 target -1 lun -1 () > scbus2 on ahcich1 bus 0: > <> at scbus2 target -1 lun -1 () > scbus3 on ahcich2 bus 0: > at scbus3 target 0 lun 0 (pass1,ada2) > <> at scbus3 target -1 lun -1 () > scbus4 on ahcich3 bus 0: > <> at scbus4 target -1 lun -1 () > scbus5 on ahcich4 bus 0: > <> at scbus5 target -1 lun -1 () > scbus6 on ahcich5 bus 0: > <> at scbus6 target -1 lun -1 () > ... > > I see no problem. What am I doing wrong? > > Let me repeat question not asked directly: Does your BIOS reports unused > AHCI channels as implemented? Do you always have all 6 ahcich devices or > not? i not exactly sure. below is the relevant dmesg. as far as i can tell, channels are correct, however, ahcich numbering is sequential and that is why hints dont work. Nov 16 11:18:00 PREPROD-red1 kernel: ahci0: port 0xf070-0xf077,0xf060-0xf063,0xf050-0xf057,0xf040-0xf043,0xf000-0xf01f mem 0xfbb21000-0xfbb217ff irq 19 at device 31.2 on pci0 Nov 16 11:18:00 PREPROD-red1 kernel: ahci0: AHCI v1.30 with 6 6Gbps ports, Port Multiplier not supported Nov 16 11:18:00 PREPROD-red1 kernel: ahcich0: at channel 0 on ahci0 Nov 16 11:18:00 PREPROD-red1 kernel: ada0 at ahcich0 bus 0 scbus1 targe
Re: Stop scheduler on panic
On Thursday, November 17, 2011 4:47:42 am Andriy Gapon wrote: > on 17/11/2011 10:34 Andriy Gapon said the following: > > on 17/11/2011 10:15 Kostik Belousov said the following: > >> I have the following change for eons on my test boxes. Without it, > >> I simply cannot get _any_ dump. > >> > >> diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > >> index 10b89c7..a38e42f 100644 > >> --- a/sys/cam/cam_xpt.c > >> +++ b/sys/cam/cam_xpt.c > >> @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > >>TAILQ_INSERT_TAIL(&cam_simq, sim, links); > >>mtx_unlock(&cam_simq_lock); > >>sim->flags |= CAM_SIM_ON_DONEQ; > >> - if (first) > >> + if (first && panicstr == NULL) > >>swi_sched(cambio_ih, 0); > >>} > >>} > > > > I think that this (or similar) change should go into the patch and the tree. > > > > And, BTW, I still would like to do something like the following (perhaps with > td_oncpu = NOCPU and td_flags &= ~TDF_NEEDRESCHED also moved to the common > code): > > Index: sys/kern/sched_ule.c > === > --- sys/kern/sched_ule.c (revision 227608) > +++ sys/kern/sched_ule.c (working copy) > @@ -1790,7 +1790,6 @@ sched_switch(struct thread *td, struct thread *new > td->td_oncpu = NOCPU; > if (!(flags & SW_PREEMPT)) > td->td_flags &= ~TDF_NEEDRESCHED; > - td->td_owepreempt = 0; > tdq->tdq_switchcnt++; > /* >* The lock pointer in an idle thread should never change. Reset it > Index: sys/kern/kern_synch.c > === > --- sys/kern/kern_synch.c (revision 227608) > +++ sys/kern/kern_synch.c (working copy) > @@ -406,6 +406,8 @@ mi_switch(int flags, struct thread *newtd) > ("mi_switch: switch must be voluntary or involuntary")); > KASSERT(newtd != curthread, ("mi_switch: preempting back to ourself")); > > + td->td_owepreempt = 0; > + > /* >* Don't perform context switches from the debugger. >*/ > Index: sys/kern/sched_4bsd.c > === > --- sys/kern/sched_4bsd.c (revision 227608) > +++ sys/kern/sched_4bsd.c (working copy) > @@ -940,7 +940,6 @@ sched_switch(struct thread *td, struct thread *new > td->td_lastcpu = td->td_oncpu; > if (!(flags & SW_PREEMPT)) > td->td_flags &= ~TDF_NEEDRESCHED; > - td->td_owepreempt = 0; > td->td_oncpu = NOCPU; > > /* > > Does anybody see any potential problems with such a change? Hmm, does this mean the preemption will be lost if you break into the debugger and continue in the non-panic case? -- John Baldwin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
on 17/11/2011 18:37 John Baldwin said the following: > On Thursday, November 17, 2011 4:47:42 am Andriy Gapon wrote: >> on 17/11/2011 10:34 Andriy Gapon said the following: >>> on 17/11/2011 10:15 Kostik Belousov said the following: I have the following change for eons on my test boxes. Without it, I simply cannot get _any_ dump. diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index 10b89c7..a38e42f 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) TAILQ_INSERT_TAIL(&cam_simq, sim, links); mtx_unlock(&cam_simq_lock); sim->flags |= CAM_SIM_ON_DONEQ; - if (first) + if (first && panicstr == NULL) swi_sched(cambio_ih, 0); } } >>> >>> I think that this (or similar) change should go into the patch and the tree. >>> >> >> And, BTW, I still would like to do something like the following (perhaps with >> td_oncpu = NOCPU and td_flags &= ~TDF_NEEDRESCHED also moved to the common >> code): >> >> Index: sys/kern/sched_ule.c >> === >> --- sys/kern/sched_ule.c (revision 227608) >> +++ sys/kern/sched_ule.c (working copy) >> @@ -1790,7 +1790,6 @@ sched_switch(struct thread *td, struct thread *new >> td->td_oncpu = NOCPU; >> if (!(flags & SW_PREEMPT)) >> td->td_flags &= ~TDF_NEEDRESCHED; >> -td->td_owepreempt = 0; >> tdq->tdq_switchcnt++; >> /* >> * The lock pointer in an idle thread should never change. Reset it >> Index: sys/kern/kern_synch.c >> === >> --- sys/kern/kern_synch.c(revision 227608) >> +++ sys/kern/kern_synch.c(working copy) >> @@ -406,6 +406,8 @@ mi_switch(int flags, struct thread *newtd) >> ("mi_switch: switch must be voluntary or involuntary")); >> KASSERT(newtd != curthread, ("mi_switch: preempting back to ourself")); >> >> +td->td_owepreempt = 0; >> + >> /* >> * Don't perform context switches from the debugger. >> */ >> Index: sys/kern/sched_4bsd.c >> === >> --- sys/kern/sched_4bsd.c(revision 227608) >> +++ sys/kern/sched_4bsd.c(working copy) >> @@ -940,7 +940,6 @@ sched_switch(struct thread *td, struct thread *new >> td->td_lastcpu = td->td_oncpu; >> if (!(flags & SW_PREEMPT)) >> td->td_flags &= ~TDF_NEEDRESCHED; >> -td->td_owepreempt = 0; >> td->td_oncpu = NOCPU; >> >> /* >> >> Does anybody see any potential problems with such a change? > > Hmm, does this mean the preemption will be lost if you break into the > debugger and continue in the non-panic case? Not sure which exact scenario you have in mind. Please note that the above diff just moves resetting of td_owepreempt to an earlier place. As far as I can see there are no checks of td_owepreempt value between the new place and the old places. -- Andriy Gapon ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: [RFC] ahci(4) patch
On 11/17/11 18:35, Maksim Yevmenkin wrote: > On Thu, Nov 17, 2011 at 8:09 AM, Alexander Motin wrote: >> On 11/17/11 01:08, Maksim Yevmenkin wrote: >>> On Wed, Nov 16, 2011 at 2:59 PM, Alexander Motin wrote: On 17.11.2011 00:44, Maksim Yevmenkin wrote: > > On Wed, Nov 16, 2011 at 2:35 PM, Alexander Motin wrote: >> >> On 16.11.2011 23:59, Maksim Yevmenkin wrote: >>> >>> would anyone object to the following ahci(4) patch? >>> >>> == >>> >>> --- ahci.c.orig 2011-11-16 21:35:26.0 + >>> +++ ahci.c 2011-11-16 21:35:41.0 + >>> @@ -500,7 +500,7 @@ >>>for (unit = 0; unitchannels; unit++) { >>>if ((ctlr->ichannels&(1< >>continue; >>> - child = device_add_child(dev, "ahcich", -1); >>> + child = device_add_child(dev, "ahcich", unit); >>>if (child == NULL) >>>device_printf(dev, "failed to add channel >>> device\n"); >>>else >>> >>> == >>> >>> the idea is to have "static" numbering for ada(4) disks. >> >> I do. The only way I see this useful is if you have BIOS configured for >> non-hot-swappable disks, in which case you have some AHCI channels >> disabled, >> but want to keep numbers of the rest. While I don't like this mode in >> general, especially when it can't be disabled, that patch could be useful >> in >> these cases. But in other cases, when you have several AHCI controllers, >> it >> just wont not work. You will receive error on attempt to create second >> ahcich0. > > shouldn't achcichX be destroyed when disk is detached/removed/etc.? List of implemented AHCI channels to expose as ahcichX set by BIOS in vendor-specific way, but only during boot and not by many BIOSes. Destroying them on disk detach theoretically possible, but IMHO not right, as bus doesn't disappear on disk disconnect. > the particular problem i'm trying to address is disk re-numbering when > one of the disks fails/removed/etc. i'm trying to use hints to wire > disks to controllers/busses. it works perfectly fine with da(4) disks > (even hot swappable ones) , but i can not make it to work with ada(4) > disks. i'm perfectly fine to hid this under some sort of option > (something similar to ATA_STATIC_ID, AHCI_STATIC_ID for example) Wiring works for adaX also, unless your BIOS is so "intelligent" to report unconnected ports and not impliemented.. You should just wire CAM buses to ahcichX, not to ahciX. It could be done in other way changing just by one line around xpt_bus_register(), but now it is done so. >>> >>> ok. then i must be missing something, here is what i have in device.hints >>> >>> hint.scbus.0.at="umass-sim0" >>> hint.scbus.1.at="ahcich0" >>> hint.scbus.2.at="ahcich1" >>> hint.scbus.3.at="ahcich2" >>> hint.scbus.4.at="ahcich3" >>> hint.scbus.5.at="ahcich4" >>> hint.scbus.6.at="ahcich5" >>> >>> hint.da.0.at="scbus0" >>> hint.ada.0.at="scbus1" >>> hint.ada.1.at="scbus2" >>> hint.ada.2.at="scbus3" >>> hint.ada.3.at="scbus4" >>> hint.ada.4.at="scbus5" >>> hint.ada.5.at="scbus6" >>> >>> this is for 6-port ahci(4) compatible controller (intel) on the >>> motherboard. no matter which achi(4) ports are connected, resulted >>> adaX devices are always sequential starting from ada0. so, the >>> question is: what am i doing wrong here? >> >> Just put your lines into my loader.conf and got this: >> >> %camcontrol devlist -v >> scbus1 on ahcich0 bus 0: >> at scbus1 target 0 lun 0 (pass0,ada0) >> <> at scbus1 target -1 lun -1 () >> scbus2 on ahcich1 bus 0: >> <> at scbus2 target -1 lun -1 () >> scbus3 on ahcich2 bus 0: >> at scbus3 target 0 lun 0 (pass1,ada2) >> <> at scbus3 target -1 lun -1 () >> scbus4 on ahcich3 bus 0: >> <> at scbus4 target -1 lun -1 () >> scbus5 on ahcich4 bus 0: >> <> at scbus5 target -1 lun -1 () >> scbus6 on ahcich5 bus 0: >> <> at scbus6 target -1 lun -1 () >> ... >> >> I see no problem. What am I doing wrong? >> >> Let me repeat question not asked directly: Does your BIOS reports unused >> AHCI channels as implemented? Do you always have all 6 ahcich devices or >> not? > > i not exactly sure. below is the relevant dmesg. as far as i can tell, > channels are correct, however, ahcich numbering is sequential and that > is why hints dont work. > > Nov 17 09:22:51 PREPROD-red1 kernel: ahci0: SATA controller> port > 0xf070-0xf077,0xf060-0xf063,0xf050-0xf057,0xf040-0xf043,0xf000-0xf01f > mem 0xfbb21000-0xfbb217ff irq 19 at device 31.2 on pci0 > Nov 17 09:22:51 PREPROD-red1 kernel: ahci0: attemptin
RE: Adding disk firmware programming capability to camcontrol
I have updated the patch according to feedbacks I received. The main modification was to warn the user and ask for confirmation before downloading a firmware image. A -y option has been added that suppresses the confirmation-- the same as the one for the format command. The new patch is against HEAD and could be downloaded from: http://people.freebsd.org/~emaste/patches/fwdownload.diff Reviews/suggestions are greatly appreciated. Nima Misaghian nmisagh...@sandvine.com > -Original Message- > From: crodr...@gmail.com [mailto:crodr...@gmail.com] On Behalf Of Craig > Rodrigues > Sent: Thursday, November 03, 2011 10:06 PM > To: Nima Misaghian > Cc: freebsd-current@freebsd.org > Subject: Re: Adding disk firmware programming capability to camcontrol > > On Fri, Oct 28, 2011 at 1:47 PM, Nima Misaghian > wrote: > > Hi, > > > > I have got code developed by Andre Albsmeier that is capable of > > programming firmware of hard drives from several vendors and turned > > it into a camcontrol command. > > +1 > > I took a look at your patch and it looks great. I have worked on a > storage product before where there > was a requirement to reprogram the firmware of hard drives. On tha > product, > proprietary Windows tools had to be used. It would have been nice to > be able to use camcontrol in FreeBSD. > > I think the patch is fine in its current form. Very few "regular > users" need to reprogram hard drive firmware. > It is a special administrative operation. > > -- > Craig Rodrigues > rodr...@crodrigues.org fwdownload.diff Description: fwdownload.diff ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
On Nov 13, 2011, at 3:32 AM, Kostik Belousov wrote: > I was tricked into finishing the work by Andrey Gapon, who developed > the patch to reliably stop other processors on panic. The patch > greatly improves the chances of getting dump on panic on SMP host. > Several people already saw the patchset, and I remember that Andrey > posted it to some lists. > > The change stops other (*) processors early upon the panic. This way, > no parallel manipulation of the kernel memory is performed by CPUs. > In particular, the kernel memory map is static. Patch prevents the > panic thread from blocking and switching out. > > * - in the context of the description, other means not current. > > Since other threads are not run anymore, lock owner cannot release a > lock which is required by panic thread. Due to this, we need to fake > a lock acquisition after the panic, which adds minimal overhead to the > locking cost. The patch tries to not add any overhead on the fast path > of the lock acquire. The check for the after-panic condition was > reduced to single memory access, done only when the quick cas lock > attempt failed, and braced with __unlikely compiler hint. > > For now, the new mode of operation is disabled by default, since some > further USB changes are needed to make USB keyboard usable in that > environment. > > With the patch, getting a dump from the machine without debugger > compiled in is much more realistic. Please comment, I will commit the > change in 2 weeks unless strong reasons not to are given. > > http://people.freebsd.org/~kib/misc/stop_cpus_on_panic.1.patch > We have many systems running Andriy's latest version of the patch under 8.2. I also brought in the related USB patch; without it, the system hangs up while dumping almost every time. With both patches in place* it has worked flawlessly for us. -Andrew * - with one change: always do the critical_enter() / critical_exit(). Using spinlock_enter() blocks the software watchdog, which needs to still be active in case the dump hangs for other reasons. This is obviously not ideal but the best solution I have right now. We also stop all of the network interfaces at the beginning of boot(). -- Andrew Boyerabo...@averesystems.com ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: [RFC] ahci(4) patch
On Thu, Nov 17, 2011 at 9:02 AM, Alexander Motin wrote: > On 11/17/11 18:35, Maksim Yevmenkin wrote: >> On Thu, Nov 17, 2011 at 8:09 AM, Alexander Motin wrote: >>> On 11/17/11 01:08, Maksim Yevmenkin wrote: On Wed, Nov 16, 2011 at 2:59 PM, Alexander Motin wrote: > On 17.11.2011 00:44, Maksim Yevmenkin wrote: >> >> On Wed, Nov 16, 2011 at 2:35 PM, Alexander Motin >> wrote: >>> >>> On 16.11.2011 23:59, Maksim Yevmenkin wrote: would anyone object to the following ahci(4) patch? == --- ahci.c.orig 2011-11-16 21:35:26.0 + +++ ahci.c 2011-11-16 21:35:41.0 + @@ -500,7 +500,7 @@ for (unit = 0; unit< ctlr->channels; unit++) { if ((ctlr->ichannels& (1<< unit)) == 0) continue; - child = device_add_child(dev, "ahcich", -1); + child = device_add_child(dev, "ahcich", unit); if (child == NULL) device_printf(dev, "failed to add channel device\n"); else == the idea is to have "static" numbering for ada(4) disks. >>> >>> I do. The only way I see this useful is if you have BIOS configured for >>> non-hot-swappable disks, in which case you have some AHCI channels >>> disabled, >>> but want to keep numbers of the rest. While I don't like this mode in >>> general, especially when it can't be disabled, that patch could be >>> useful >>> in >>> these cases. But in other cases, when you have several AHCI controllers, >>> it >>> just wont not work. You will receive error on attempt to create second >>> ahcich0. >> >> shouldn't achcichX be destroyed when disk is detached/removed/etc.? > > List of implemented AHCI channels to expose as ahcichX set by BIOS in > vendor-specific way, but only during boot and not by many BIOSes. > Destroying > them on disk detach theoretically possible, but IMHO not right, as bus > doesn't disappear on disk disconnect. > >> the particular problem i'm trying to address is disk re-numbering when >> one of the disks fails/removed/etc. i'm trying to use hints to wire >> disks to controllers/busses. it works perfectly fine with da(4) disks >> (even hot swappable ones) , but i can not make it to work with ada(4) >> disks. i'm perfectly fine to hid this under some sort of option >> (something similar to ATA_STATIC_ID, AHCI_STATIC_ID for example) > > Wiring works for adaX also, unless your BIOS is so "intelligent" to report > unconnected ports and not impliemented.. You should just wire CAM buses to > ahcichX, not to ahciX. It could be done in other way changing just by one > line around xpt_bus_register(), but now it is done so. ok. then i must be missing something, here is what i have in device.hints hint.scbus.0.at="umass-sim0" hint.scbus.1.at="ahcich0" hint.scbus.2.at="ahcich1" hint.scbus.3.at="ahcich2" hint.scbus.4.at="ahcich3" hint.scbus.5.at="ahcich4" hint.scbus.6.at="ahcich5" hint.da.0.at="scbus0" hint.ada.0.at="scbus1" hint.ada.1.at="scbus2" hint.ada.2.at="scbus3" hint.ada.3.at="scbus4" hint.ada.4.at="scbus5" hint.ada.5.at="scbus6" this is for 6-port ahci(4) compatible controller (intel) on the motherboard. no matter which achi(4) ports are connected, resulted adaX devices are always sequential starting from ada0. so, the question is: what am i doing wrong here? >>> >>> Just put your lines into my loader.conf and got this: >>> >>> %camcontrol devlist -v >>> scbus1 on ahcich0 bus 0: >>> at scbus1 target 0 lun 0 (pass0,ada0) >>> <> at scbus1 target -1 lun -1 () >>> scbus2 on ahcich1 bus 0: >>> <> at scbus2 target -1 lun -1 () >>> scbus3 on ahcich2 bus 0: >>> at scbus3 target 0 lun 0 (pass1,ada2) >>> <> at scbus3 target -1 lun -1 () >>> scbus4 on ahcich3 bus 0: >>> <> at scbus4 target -1 lun -1 () >>> scbus5 on ahcich4 bus 0: >>> <> at scbus5 target -1 lun -1 () >>> scbus6 on ahcich5 bus 0: >>> <> at scbus6 target -1 lun -1 () >>> ... >>> >>> I see no problem. What am I doing wrong? >>> >>> Let me repeat question not asked directly: Does your BIOS reports unused >>> AHCI channels as implemented? Do you always have all 6 ahcich devices or >>> not? >> >> i not exactly sure. below is the relevant dmesg. as far as i can tell, >> channels are correct, however, ahcich numbering is sequential and that >> is why hints dont work. >> >> Nov 17 09:22:51 PREPROD-red1 kernel: ahci0: > SATA controller> p
Re: [RFC] ahci(4) patch
On 11/17/11 19:02, Alexander Motin wrote: > On 11/17/11 18:35, Maksim Yevmenkin wrote: >> On Thu, Nov 17, 2011 at 8:09 AM, Alexander Motin wrote: >>> On 11/17/11 01:08, Maksim Yevmenkin wrote: On Wed, Nov 16, 2011 at 2:59 PM, Alexander Motin wrote: > On 17.11.2011 00:44, Maksim Yevmenkin wrote: >> >> On Wed, Nov 16, 2011 at 2:35 PM, Alexander Motin >> wrote: >>> >>> On 16.11.2011 23:59, Maksim Yevmenkin wrote: would anyone object to the following ahci(4) patch? == --- ahci.c.orig 2011-11-16 21:35:26.0 + +++ ahci.c 2011-11-16 21:35:41.0 + @@ -500,7 +500,7 @@ for (unit = 0; unitchannels; unit++) { if ((ctlr->ichannels&(1< >> >>> I do. The only way I see this useful is if you have BIOS configured for >>> non-hot-swappable disks, in which case you have some AHCI channels >>> disabled, >>> but want to keep numbers of the rest. While I don't like this mode in >>> general, especially when it can't be disabled, that patch could be >>> useful >>> in >>> these cases. But in other cases, when you have several AHCI controllers, >>> it >>> just wont not work. You will receive error on attempt to create second >>> ahcich0. >> >> shouldn't achcichX be destroyed when disk is detached/removed/etc.? > > List of implemented AHCI channels to expose as ahcichX set by BIOS in > vendor-specific way, but only during boot and not by many BIOSes. > Destroying > them on disk detach theoretically possible, but IMHO not right, as bus > doesn't disappear on disk disconnect. > >> the particular problem i'm trying to address is disk re-numbering when >> one of the disks fails/removed/etc. i'm trying to use hints to wire >> disks to controllers/busses. it works perfectly fine with da(4) disks >> (even hot swappable ones) , but i can not make it to work with ada(4) >> disks. i'm perfectly fine to hid this under some sort of option >> (something similar to ATA_STATIC_ID, AHCI_STATIC_ID for example) > > Wiring works for adaX also, unless your BIOS is so "intelligent" to report > unconnected ports and not impliemented.. You should just wire CAM buses to > ahcichX, not to ahciX. It could be done in other way changing just by one > line around xpt_bus_register(), but now it is done so. ok. then i must be missing something, here is what i have in device.hints hint.scbus.0.at="umass-sim0" hint.scbus.1.at="ahcich0" hint.scbus.2.at="ahcich1" hint.scbus.3.at="ahcich2" hint.scbus.4.at="ahcich3" hint.scbus.5.at="ahcich4" hint.scbus.6.at="ahcich5" hint.da.0.at="scbus0" hint.ada.0.at="scbus1" hint.ada.1.at="scbus2" hint.ada.2.at="scbus3" hint.ada.3.at="scbus4" hint.ada.4.at="scbus5" hint.ada.5.at="scbus6" this is for 6-port ahci(4) compatible controller (intel) on the motherboard. no matter which achi(4) ports are connected, resulted adaX devices are always sequential starting from ada0. so, the question is: what am i doing wrong here? >>> >>> Just put your lines into my loader.conf and got this: >>> >>> %camcontrol devlist -v >>> scbus1 on ahcich0 bus 0: >>> at scbus1 target 0 lun 0 (pass0,ada0) >>> <> at scbus1 target -1 lun -1 () >>> scbus2 on ahcich1 bus 0: >>> <> at scbus2 target -1 lun -1 () >>> scbus3 on ahcich2 bus 0: >>> at scbus3 target 0 lun 0 (pass1,ada2) >>> <> at scbus3 target -1 lun -1 () >>> scbus4 on ahcich3 bus 0: >>> <> at scbus4 target -1 lun -1 () >>> scbus5 on ahcich4 bus 0: >>> <> at scbus5 target -1 lun -1 () >>> scbus6 on ahcich5 bus 0: >>> <> at scbus6 target -1 lun -1 () >>> ... >>> >>> I see no problem. What am I doing wrong? >>> >>> Let me repeat question not asked directly: Does your BIOS reports unused >>> AHCI channels as implemented? Do you always have all 6 ahcich devices or >>> not? >> >> i not exactly sure. below is the relevant dmesg. as far as i can tell, >> channels are correct, however, ahcich numbering is sequential and that >> is why hints dont work. >> >> Nov 17 09:22:51 PREPROD-red1 kernel: ahci0: > SATA controller> port >> 0xf070-0
[head tinderbox] failure on powerpc/powerpc
TB --- 2011-11-17 15:27:01 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 15:27:01 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2011-11-17 15:27:01 - cleaning the object tree TB --- 2011-11-17 15:27:13 - cvsupping the source tree TB --- 2011-11-17 15:27:13 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2011-11-17 15:27:26 - building world TB --- 2011-11-17 15:27:26 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 15:27:26 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 15:27:26 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 15:27:26 - SRCCONF=/dev/null TB --- 2011-11-17 15:27:26 - TARGET=powerpc TB --- 2011-11-17 15:27:26 - TARGET_ARCH=powerpc TB --- 2011-11-17 15:27:26 - TZ=UTC TB --- 2011-11-17 15:27:26 - __MAKE_CONF=/dev/null TB --- 2011-11-17 15:27:26 - cd /src TB --- 2011-11-17 15:27:26 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 15:27:26 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 17:29:36 UTC 2011 TB --- 2011-11-17 17:29:36 - generating LINT kernel config TB --- 2011-11-17 17:29:36 - cd /src/sys/powerpc/conf TB --- 2011-11-17 17:29:36 - /usr/bin/make -B LINT TB --- 2011-11-17 17:29:36 - cd /src/sys/powerpc/conf TB --- 2011-11-17 17:29:36 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 17:29:36 - building GENERIC kernel TB --- 2011-11-17 17:29:36 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 17:29:36 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 17:29:36 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 17:29:36 - SRCCONF=/dev/null TB --- 2011-11-17 17:29:36 - TARGET=powerpc TB --- 2011-11-17 17:29:36 - TARGET_ARCH=powerpc TB --- 2011-11-17 17:29:36 - TZ=UTC TB --- 2011-11-17 17:29:36 - __MAKE_CONF=/dev/null TB --- 2011-11-17 17:29:36 - cd /src TB --- 2011-11-17 17:29:36 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 17:29:36 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] objcopy --only-keep-debug if_sf.ko.debug if_sf.ko.symbols objcopy --strip-debug --add-gnu-debuglink=if_sf.ko.symbols if_sf.ko.debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc/src/sys/GENERIC -msoft-float -mno-altivec -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc/src/sys/GENERIC -msoft-float -mno-altivec -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/powerpc.powerpc/src/sys/GENERIC. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-17 17:43:21 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-17 17:43:21 - ERROR: failed to build GENERIC kernel TB --- 2011-11-17 17:43:21 - 6557.05 user 1120.39 system 8180.27 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full __
[head tinderbox] failure on sparc64/sparc64
TB --- 2011-11-17 16:23:47 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 16:23:47 - starting HEAD tinderbox run for sparc64/sparc64 TB --- 2011-11-17 16:23:47 - cleaning the object tree TB --- 2011-11-17 16:24:06 - cvsupping the source tree TB --- 2011-11-17 16:24:06 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/sparc64/sparc64/supfile TB --- 2011-11-17 16:24:19 - building world TB --- 2011-11-17 16:24:19 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 16:24:19 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 16:24:19 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 16:24:19 - SRCCONF=/dev/null TB --- 2011-11-17 16:24:19 - TARGET=sparc64 TB --- 2011-11-17 16:24:19 - TARGET_ARCH=sparc64 TB --- 2011-11-17 16:24:19 - TZ=UTC TB --- 2011-11-17 16:24:19 - __MAKE_CONF=/dev/null TB --- 2011-11-17 16:24:19 - cd /src TB --- 2011-11-17 16:24:19 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 16:24:20 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 17:30:41 UTC 2011 TB --- 2011-11-17 17:30:41 - generating LINT kernel config TB --- 2011-11-17 17:30:41 - cd /src/sys/sparc64/conf TB --- 2011-11-17 17:30:41 - /usr/bin/make -B LINT TB --- 2011-11-17 17:30:41 - cd /src/sys/sparc64/conf TB --- 2011-11-17 17:30:41 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 17:30:41 - building GENERIC kernel TB --- 2011-11-17 17:30:41 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 17:30:41 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 17:30:41 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 17:30:41 - SRCCONF=/dev/null TB --- 2011-11-17 17:30:41 - TARGET=sparc64 TB --- 2011-11-17 17:30:41 - TARGET_ARCH=sparc64 TB --- 2011-11-17 17:30:41 - TZ=UTC TB --- 2011-11-17 17:30:41 - __MAKE_CONF=/dev/null TB --- 2011-11-17 17:30:41 - cd /src TB --- 2011-11-17 17:30:41 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 17:30:41 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/sparc64.sparc64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/sparc64.sparc64/src/sys/GENERIC -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/sparc64.sparc64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/sparc64.sparc64/src/sys/GENERIC -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/sparc64.sparc64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/sparc64.sparc64/src/sys/GENERIC -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c: In function 'sfxge_ev_rx': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c:120: warning: implicit declaration of function 'prefetch_read_many' /src/sys/modules/sfxge/../../dev/sfx
[head tinderbox] failure on powerpc64/powerpc
TB --- 2011-11-17 16:16:44 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 16:16:44 - starting HEAD tinderbox run for powerpc64/powerpc TB --- 2011-11-17 16:16:44 - cleaning the object tree TB --- 2011-11-17 16:17:00 - cvsupping the source tree TB --- 2011-11-17 16:17:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc64/powerpc/supfile TB --- 2011-11-17 16:17:13 - building world TB --- 2011-11-17 16:17:13 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 16:17:13 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 16:17:13 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 16:17:13 - SRCCONF=/dev/null TB --- 2011-11-17 16:17:13 - TARGET=powerpc TB --- 2011-11-17 16:17:13 - TARGET_ARCH=powerpc64 TB --- 2011-11-17 16:17:13 - TZ=UTC TB --- 2011-11-17 16:17:13 - __MAKE_CONF=/dev/null TB --- 2011-11-17 16:17:13 - cd /src TB --- 2011-11-17 16:17:13 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 16:17:13 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> stage 5.1: building 32 bit shim libraries >>> World build completed on Thu Nov 17 17:55:57 UTC 2011 TB --- 2011-11-17 17:55:57 - generating LINT kernel config TB --- 2011-11-17 17:55:57 - cd /src/sys/powerpc/conf TB --- 2011-11-17 17:55:57 - /usr/bin/make -B LINT TB --- 2011-11-17 17:55:57 - cd /src/sys/powerpc/conf TB --- 2011-11-17 17:55:57 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 17:55:57 - skipping GENERIC kernel TB --- 2011-11-17 17:55:57 - cd /src/sys/powerpc/conf TB --- 2011-11-17 17:55:57 - /usr/sbin/config -m GENERIC64 TB --- 2011-11-17 17:55:57 - building GENERIC64 kernel TB --- 2011-11-17 17:55:57 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 17:55:57 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 17:55:57 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 17:55:57 - SRCCONF=/dev/null TB --- 2011-11-17 17:55:57 - TARGET=powerpc TB --- 2011-11-17 17:55:57 - TARGET_ARCH=powerpc64 TB --- 2011-11-17 17:55:57 - TZ=UTC TB --- 2011-11-17 17:55:57 - __MAKE_CONF=/dev/null TB --- 2011-11-17 17:55:57 - cd /src TB --- 2011-11-17 17:55:57 - /usr/bin/make -B buildkernel KERNCONF=GENERIC64 >>> Kernel build for GENERIC64 started on Thu Nov 17 17:55:57 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc64/src/sys/GENERIC64/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc64/src/sys/GENERIC64 -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc64/src/sys/GENERIC64/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc64/src/sys/GENERIC64 -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc64/src/sys/GENERIC64/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc64/src/sys/GENERIC64 -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -ffo
FreeBSD 9.0-RC2 Available...
The second of the Release Candidate builds for the 9.0-RELEASE release cycle is now available. Since this is the first release of a brand new branch I cross-post the announcements on both -current and -stable. But just so you know most of the developers active in head and stable/9 pay more attention to the -current mailing list. If you notice problems you can report them through the normal Gnats PR system or on the -current mailing list. At the current plans are for one more RC build, which will be followed by the release. The 9.0-RELEASE cycle will be tracked here: http://wiki.freebsd.org/Releng/9.0TODO NOTE: The location of the FTP install tree and ISOs is the same as it had been for BETA2/BETA3/RC1, though we are still deciding if this will be the layout we switch to for the release. ISO images for the following architectures are available, with pathnames given relative to the top-level of the FTP site: amd64: .../releases/amd64/amd64/ISO-IMAGES/9.0/ i386: .../releases/i386/i386/ISO-IMAGES/9.0/ ia64: .../releases/ia64/ia64/ISO-IMAGES/9.0/ powerpc: .../releases/powerpc/powerpc/ISO-IMAGES/9.0/ powerpc64: .../releases/powerpc/powerpc64/ISO-IMAGES/9.0/ sparc64: .../releases/sparc64/sparc64/ISO-IMAGES/9.0/ MD5/SHA256 checksums are tacked on below. If you would like to use csup/cvsup mechanisms to access the source tree the branch tag to use is now "RELENG_9_0", if you use "." (head) you will get 10-CURRENT. If you would like to access the source tree via SVN it is "svn://svn.freebsd.org/base/releng/9.0/". We still have the nit that the creation of a new SVN branch winds up causing what looks like a check-in of the entire tree in CVS (a side-effect of the svn2cvs exporter) so "mergemaster -F" is your friend if you are using csup/cvsup. FreeBSD Update -- The freebsd-update(8) utility supports binary upgrades of i386 and amd64 systems running earlier FreeBSD releases. Systems running 7.[34]-RELEASE, 8.[12]-RELEASE, 9.0-BETA[123], or 9.0-RC1 can upgrade as follows: First, a minor change must be made to the freebsd-update code in order for it to accept file names appearing in FreeBSD 9.0 which contain the '%' and '@' characters; without this change, freebsd-update will error out with the message "The update metadata is correctly signed, but failed an integrity check". # sed -i '' -e 's/=_/=%@_/' /usr/sbin/freebsd-update Now freebsd-update can fetch bits belonging to 9.0-RC2. During this process freebsd-update will ask for help in merging configuration files. # freebsd-update upgrade -r 9.0-RC2 Due to changes in the way that FreeBSD is packaged on the release media, two complications may arise in this process if upgrading from FreeBSD 7.x or 8.x: 1. The FreeBSD kernel, which previously could appear in either /boot/kernel or /boot/GENERIC, now only appears as /boot/kernel. As a result, any kernel appearing in /boot/GENERIC will be deleted. Please carefully read the output printed by freebsd-update and confirm that an updated kernel will be placed into /boot/kernel before proceeding beyond this point. 2. The FreeBSD source tree in /usr/src (if present) will be deleted. (Normally freebsd-update will update a source tree, but in this case the changes in release packaging result in freebsd-update not recognizing that the source tree from the old release and the source tree from the new release correspond to the same part of FreeBSD.) # freebsd-update install The system must now be rebooted with the newly installed kernel before the non-kernel components are updated. # shutdown -r now After rebooting, freebsd-update needs to be run again to install the new userland components: # freebsd-update install At this point, users of systems being upgraded from FreeBSD 8.2-RELEASE or earlier will be prompted by freebsd-update to rebuild all third-party applications (e.g., ports installed from the ports tree) due to updates in system libraries. After updating installed third-party applications (and again, only if freebsd-update printed a message indicating that this was necessary), run freebsd-update again so that it can delete the old (no longer used) system libraries: # freebsd-update install Finally, reboot into 9.0-RC2: # shutdown -r now Checksums: MD5 (FreeBSD-9.0-RC2-amd64-bootonly.iso) = 0165f0a2a1141a4c69413ec0c0b7d754 MD5 (FreeBSD-9.0-RC2-amd64-memstick.img) = 84713f2f556cdd58aa18e36093525e6c MD5 (FreeBSD-9.0-RC2-amd64-dvd1.iso) = 59792b2012e6feff6981d3cf58c0b901 MD5 (FreeBSD-9.0-RC2-i386-bootonly.iso) = ed3e7b8ac2fdadd2c41c0d5c8b26943c MD5 (FreeBSD-9.0-RC2-i386-memstick.img) = f396728fbd72c61078a7f9511b0c71ff MD5 (FreeBSD-9.0-RC2-i386-dvd1.iso) = cacc9962fa80a6b9a5067c907f127e8b MD5 (FreeBSD-9.0-RC2-ia64-bootonly.iso) = faaf6f0c529b8ec59b9d4252ae666dc7 MD5 (FreeBSD-9.0-RC2-ia64-memstick) = b937883e7634334bef1ddf3eb1e06ffb MD5 (FreeBSD-9.0-RC2-ia64-release.iso) = c1f5623734132ea80a9fa2298262884c MD5 (FreeBSD-9.0-RC2-powerpc-bootonly.iso) = 35e667deaa72
Re: [RFC] ahci(4) patch
On Thu, Nov 17, 2011 at 9:36 AM, Alexander Motin wrote: > On 11/17/11 19:02, Alexander Motin wrote: >> On 11/17/11 18:35, Maksim Yevmenkin wrote: >>> On Thu, Nov 17, 2011 at 8:09 AM, Alexander Motin wrote: On 11/17/11 01:08, Maksim Yevmenkin wrote: > On Wed, Nov 16, 2011 at 2:59 PM, Alexander Motin wrote: >> On 17.11.2011 00:44, Maksim Yevmenkin wrote: >>> >>> On Wed, Nov 16, 2011 at 2:35 PM, Alexander Motin >>> wrote: On 16.11.2011 23:59, Maksim Yevmenkin wrote: > > would anyone object to the following ahci(4) patch? > > == > > --- ahci.c.orig 2011-11-16 21:35:26.0 + > +++ ahci.c 2011-11-16 21:35:41.0 + > @@ -500,7 +500,7 @@ > for (unit = 0; unit< ctlr->channels; unit++) { > if ((ctlr->ichannels& (1<< unit)) == 0) > continue; > - child = device_add_child(dev, "ahcich", -1); > + child = device_add_child(dev, "ahcich", unit); > if (child == NULL) > device_printf(dev, "failed to add channel > device\n"); > else > > == > > the idea is to have "static" numbering for ada(4) disks. I do. The only way I see this useful is if you have BIOS configured for non-hot-swappable disks, in which case you have some AHCI channels disabled, but want to keep numbers of the rest. While I don't like this mode in general, especially when it can't be disabled, that patch could be useful in these cases. But in other cases, when you have several AHCI controllers, it just wont not work. You will receive error on attempt to create second ahcich0. >>> >>> shouldn't achcichX be destroyed when disk is detached/removed/etc.? >> >> List of implemented AHCI channels to expose as ahcichX set by BIOS in >> vendor-specific way, but only during boot and not by many BIOSes. >> Destroying >> them on disk detach theoretically possible, but IMHO not right, as bus >> doesn't disappear on disk disconnect. >> >>> the particular problem i'm trying to address is disk re-numbering when >>> one of the disks fails/removed/etc. i'm trying to use hints to wire >>> disks to controllers/busses. it works perfectly fine with da(4) disks >>> (even hot swappable ones) , but i can not make it to work with ada(4) >>> disks. i'm perfectly fine to hid this under some sort of option >>> (something similar to ATA_STATIC_ID, AHCI_STATIC_ID for example) >> >> Wiring works for adaX also, unless your BIOS is so "intelligent" to >> report >> unconnected ports and not impliemented.. You should just wire CAM buses >> to >> ahcichX, not to ahciX. It could be done in other way changing just by one >> line around xpt_bus_register(), but now it is done so. > > ok. then i must be missing something, here is what i have in device.hints > > hint.scbus.0.at="umass-sim0" > hint.scbus.1.at="ahcich0" > hint.scbus.2.at="ahcich1" > hint.scbus.3.at="ahcich2" > hint.scbus.4.at="ahcich3" > hint.scbus.5.at="ahcich4" > hint.scbus.6.at="ahcich5" > > hint.da.0.at="scbus0" > hint.ada.0.at="scbus1" > hint.ada.1.at="scbus2" > hint.ada.2.at="scbus3" > hint.ada.3.at="scbus4" > hint.ada.4.at="scbus5" > hint.ada.5.at="scbus6" > > this is for 6-port ahci(4) compatible controller (intel) on the > motherboard. no matter which achi(4) ports are connected, resulted > adaX devices are always sequential starting from ada0. so, the > question is: what am i doing wrong here? Just put your lines into my loader.conf and got this: %camcontrol devlist -v scbus1 on ahcich0 bus 0: at scbus1 target 0 lun 0 (pass0,ada0) <> at scbus1 target -1 lun -1 () scbus2 on ahcich1 bus 0: <> at scbus2 target -1 lun -1 () scbus3 on ahcich2 bus 0: at scbus3 target 0 lun 0 (pass1,ada2) <> at scbus3 target -1 lun -1 () scbus4 on ahcich3 bus 0: <> at scbus4 target -1 lun -1 () scbus5 on ahcich4 bus 0: <> at scbus5 target -1 lun -1 () scbus6 on ahcich5 bus 0: <> at scbus6 target -1 lun -1 () ... I see no problem. What am I doing wrong? Let me repeat question not asked directly: Does your BIOS reports unused AHCI channels as implemented? Do you always have all 6 ahcich devices or not? >>> >>> i not exactly sure. below is the relevant dmesg. as far as
Re: Stop scheduler on panic
On Thu, Nov 17, 2011 at 02:40:45PM +0200, Alexander Motin wrote: > On 11/17/11 13:14, Kostik Belousov wrote: > > On Thu, Nov 17, 2011 at 11:29:02AM +0200, Alexander Motin wrote: > >> On 11/17/11 11:06, Kostik Belousov wrote: > >>> On Thu, Nov 17, 2011 at 10:40:58AM +0200, Alexander Motin wrote: > On 11/17/11 10:15, Kostik Belousov wrote: > > On Thu, Nov 17, 2011 at 01:07:38AM +0200, Alexander Motin wrote: > >> On 17.11.2011 00:21, Andriy Gapon wrote: > >>> on 16/11/2011 21:27 Fabian Keil said the following: > Kostik Belousov wrote: > > > I was tricked into finishing the work by Andrey Gapon, who developed > > the patch to reliably stop other processors on panic. The patch > > greatly improves the chances of getting dump on panic on SMP host. > > I tested the patch trying to get a dump (from the debugger) for > kern/162036, which currently results in the double fault reported in: > http://lists.freebsd.org/pipermail/freebsd-current/2011-September/027766.html > > It didn't help, but also didn't make anything worse. > > Fabian > >>> > >>> The mi_switch recursion looks very familiar to me: > >>> mi_switch() at mi_switch+0x270 > >>> critical_exit() at critical_exit+0x9b > >>> spinlock_exit() at spinlock_exit+0x17 > >>> mi_switch() at mi_switch+0x275 > >>> critical_exit() at critical_exit+0x9b > >>> spinlock_exit() at spinlock_exit+0x17 > >>> [several pages of the previous three lines skipped] > >>> mi_switch() at mi_switch+0x275 > >>> critical_exit() at critical_exit+0x9b > >>> spinlock_exit() at spinlock_exit+0x17 > >>> intr_even_schedule_thread() at intr_event_schedule_thread+0xbb > >>> ahci_end_transaction() at ahci_end_transaction+0x398 > >>> ahci_ch_intr() at ahci_ch_intr+0x2b5 > >>> ahcipoll() at ahcipoll+0x15 > >>> xpt_polled_action() at xpt_polled_action+0xf7 > >>> > >>> In fact I once discussed with jhb this recursion triggered from a > >>> different > >>> place. To quote myself: > >>> spinlock_exit -> critical_exit -> mi_switch -> kdb_switch > >>> -> > >>> thread_unlock -> spinlock_exit -> critical_exit -> mi_switch -> > >>> ... > >>> in the kdb context > >>> this issue seems to be triggered by td_owepreempt being true > >>> at > >>> the time > >>> kdb is entered > >>> and there of course has to be an initial spinlock_exit call > >>> somewhere > >>> in my case it's because of usb keyboard > >>> I wonder if it would make sense to clear td_owepreempt right > >>> before > >>> calling kdb_switch in mi_switch > >>> instead of in sched_switch() > >>> clearing td_owepreempt seems like a scheduler-independent > >>> operation to me > >>> or is it better to just skip locking in usb when kdb_active > >>> is set > >>> ? > >>> > >>> The workaround described above should work in this case. > >>> Another possibility is to pessimize mtx_unlock_spin() implementations > >>> to > >>> check > >>> SCHEDULER_STOPPED() and to bypass any further actions in that case. > >>> But > >>> that > >>> would add unnecessary overhead to the sunny day code paths. > >>> > >>> Going further up the stack one can come up with the following > >>> proposals: > >>> - check SCHEDULER_STOPPED() swi_sched() and return early > >>> - do not call swi_sched() from xpt_done() if we somehow know that we > >>> are > >>> in a > >>> polling mode > >> > >> There is no flag in CAM now to indicate polling mode, but if needed, > >> it > >> should not be difficult to add one and not call swi_sched(). > > > > I have the following change for eons on my test boxes. Without it, > > I simply cannot get _any_ dump. > > > > diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > > index 10b89c7..a38e42f 100644 > > --- a/sys/cam/cam_xpt.c > > +++ b/sys/cam/cam_xpt.c > > @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > > TAILQ_INSERT_TAIL(&cam_simq, sim, links); > > mtx_unlock(&cam_simq_lock); > > sim->flags |= CAM_SIM_ON_DONEQ; > > - if (first) > > + if (first && panicstr == NULL) > > swi_sched(cambio_ih, 0); > > } > > } > > That should be OK for kernel dumping. I was thinking about CAM abusing > polling not only for dumping. But looking on cases where it does it now, > may be it is better to rewrite them instead. > >>> > >>> So, should I interpret your response as 'Reviewed by" ? > >> > >> It feels somehow dirty to me. I don't like these global variables. If > >> yo
Re: spamcop abuse of power
On Nov 17, 2011, at 5:37 AM, Dan The Man wrote: > Today I had an unhappy unix student try to submit an assignment to me and > could not. Spamcop has decided to go off blacklisting all yahoo/shaw etc > servers worldwide. I'm seeing about 40 spams per month from Yahoo's *.bullet.mail.sp2.yahoo.com; they're almost certainly the single largest source of spammy email I get. > Example Solution Postfix: > remove: reject_rbl_client bl.spamcop.net > from your smtpd_recipient_restrictions line until they fix their abuse issues. I probably wouldn't use any RBL for pass/fail blocking-- aside from postmaster.rfc-ignorant.org, maybe, and even that one likely needs some whitelisting if your mail system has a non-trivial # of users-- instead, consider using RBLs for scoring. Regards, -- -Chuck ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: [PATCH] Intel Sandy Bridge support for hwpmc
On Tue, Nov 15, 2011 at 3:44 AM, Paul Ambrose wrote: > hi, I apply your patch on this > [root@capoor-daemon /usr/src]# git show > commit 4ec1d958bad5e78bcd3cc61a0da6b5a1302f8ec2 > Author: kensmith > Date: Mon Nov 14 00:45:25 2011 + > > The releng/9.0 release branch has been created so convert stable/9 over > to our standard "Politically Correct" name for the balance of the > 9.0-RELEASE > release cycle. > > Approved by: re (implicit) > > when my machine shutdown in my absence yesterday evening, I find a > kernel oops this morning,(sorry, just printf, I can not get a kernel > dump) > the kernel says it is at uncore_pcpu_fini+0x5b > I check the source, and it is at > static int > uncore_pcpu_fini(struct pmc_mdep *md, int cpu) > { > . > for (n = 0; n < npmc; n++) > wrmsr(UCP_EVSEL0 + n, 0); //here > . > here is my cpu type, and build hwpmc into kernel > > Copyright (c) 1992-2011 The FreeBSD Project. > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 > The Regents of the University of California. All rights reserved. > FreeBSD is a registered trademark of The FreeBSD Foundation. > FreeBSD 9.0-PRERELEASE #0 r+4ec1d95-dirty: Mon Nov 14 15:31:45 CST 2011 > root@capoor-daemon:/usr/obj/usr/src/sys/MYKERNEL amd64 > CPU: Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz (2793.02-MHz K8-class CPU) > > I will try to apply this to current to see if this is reproduced. > > 2011/11/14 Attilio Rao : >> 2011/11/13 Davide Italiano : >>> On Sun, Nov 13, 2011 at 9:52 PM, Davide Italiano >>> wrote: Good evening folks. During last days I've written a patch to add sandy bridge support to hwpmc. Until now, the most recent Intel processor microarchitecture supported was Westmere. Testing is appreciated, in order to see if there's something that have to be fixed. You can find the diff here: http://davit.altervista.rg/hwpmc_sandy_bridge.diff I'd like to thanks a lot attilio@ that helped me to fix a bug and gnn@ and fabient@ for the useful suggestions. Best Davide >>> >>> Sorry, bad link. It should be: >>> http://davit.altervista.org/hwpmc_sandy_bridge.diff >> >> I can perform some small cleanups and likely test it too. >> >> If Fabien or George can review it I'm fine with committing as long as >> all that is settled. >>+ >> Attilio >> >> >> -- >> Peace can only be achieved by understanding - A. Einstein >> ___ >> freebsd-current@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-current >> To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org" >> > Have you tried on -current? If yes, what are the results? Can you provide a kernel dump and/or the instruction to reproduce this bug? Best Davide ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: [PATCH] Detect GNU/kFreeBSD in user-visible kernel headers
2011/11/17 John Baldwin : > I recall the discussion from earlier. I can't recall if I had replied to it > though. :-/ In my current opinion, I think it would be fine to define > __FreeBSD_kernel__ on FreeBSD and to do it in for now until all > the compilers we use have been updated to define it automatically (which may > be a long time). I think it will also be fine to patch in-system headers to > use __FreeBSD_kernel__ once is defined. Unfortunately headers > in 3rd party software are going to have to check for both __FreeBSD__ and > __FreeBSD_kernel__ to support both GNU/kFreeBSD and older FreeBSD for the > foreseeable future. I think that is fine, but that the sooner we add > __FreeBSD_kernel__ on FreeBSD the sooner we get the clock started for a day > when those extra checks can go away. I would also be fine with MFC'ing the > addition of __FreeBSD_kernel__ to older branches (at least 7 - 9) as well. Well, here's a patch then. I wrote a comment in it trying to explain the situation. Please let me know what you think. Index: sys/sys/param.h === --- sys/sys/param.h (revision 227580) +++ sys/sys/param.h (working copy) @@ -60,6 +60,23 @@ #undef __FreeBSD_version #define __FreeBSD_version 101 /* Master, propagated to newvers */ +/* + * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, + * which by definition is always true on FreeBSD :-). This macro may also + * be defined on other systems that use the kernel of FreeBSD, such as + * GNU/kFreeBSD. + * + * It is tempting to use this macro in userland code when we want to enable + * kernel-specific routines, and in fact it's fine to do this in code that + * is part of FreeBSD itself. However, be aware that as presence of this + * macro is still not widespread (e.g. older FreeBSD versions, 3rd party + * compilers, etc), it is STRONGLY DISCOURAGED to check for this macro in + * external applications without also checking for __FreeBSD__ as an + * alternative. + */ +#undef __FreeBSD_kernel__ +#define __FreeBSD_kernel__ __FreeBSD__ + #ifdef _KERNEL #define P_OSREL_SIGWAIT 70 #define P_OSREL_SIGSEGV 74 ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
On Thursday, November 17, 2011 11:58:03 am Andriy Gapon wrote: > on 17/11/2011 18:37 John Baldwin said the following: > > On Thursday, November 17, 2011 4:47:42 am Andriy Gapon wrote: > >> on 17/11/2011 10:34 Andriy Gapon said the following: > >>> on 17/11/2011 10:15 Kostik Belousov said the following: > I have the following change for eons on my test boxes. Without it, > I simply cannot get _any_ dump. > > diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > index 10b89c7..a38e42f 100644 > --- a/sys/cam/cam_xpt.c > +++ b/sys/cam/cam_xpt.c > @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > TAILQ_INSERT_TAIL(&cam_simq, sim, links); > mtx_unlock(&cam_simq_lock); > sim->flags |= CAM_SIM_ON_DONEQ; > -if (first) > +if (first && panicstr == NULL) > swi_sched(cambio_ih, 0); > } > } > >>> > >>> I think that this (or similar) change should go into the patch and the > >>> tree. > >>> > >> > >> And, BTW, I still would like to do something like the following (perhaps > >> with > >> td_oncpu = NOCPU and td_flags &= ~TDF_NEEDRESCHED also moved to the common > >> code): > >> > >> Index: sys/kern/sched_ule.c > >> === > >> --- sys/kern/sched_ule.c (revision 227608) > >> +++ sys/kern/sched_ule.c (working copy) > >> @@ -1790,7 +1790,6 @@ sched_switch(struct thread *td, struct thread *new > >>td->td_oncpu = NOCPU; > >>if (!(flags & SW_PREEMPT)) > >>td->td_flags &= ~TDF_NEEDRESCHED; > >> - td->td_owepreempt = 0; > >>tdq->tdq_switchcnt++; > >>/* > >> * The lock pointer in an idle thread should never change. Reset it > >> Index: sys/kern/kern_synch.c > >> === > >> --- sys/kern/kern_synch.c (revision 227608) > >> +++ sys/kern/kern_synch.c (working copy) > >> @@ -406,6 +406,8 @@ mi_switch(int flags, struct thread *newtd) > >>("mi_switch: switch must be voluntary or involuntary")); > >>KASSERT(newtd != curthread, ("mi_switch: preempting back to ourself")); > >> > >> + td->td_owepreempt = 0; > >> + > >>/* > >> * Don't perform context switches from the debugger. > >> */ > >> Index: sys/kern/sched_4bsd.c > >> === > >> --- sys/kern/sched_4bsd.c (revision 227608) > >> +++ sys/kern/sched_4bsd.c (working copy) > >> @@ -940,7 +940,6 @@ sched_switch(struct thread *td, struct thread *new > >>td->td_lastcpu = td->td_oncpu; > >>if (!(flags & SW_PREEMPT)) > >>td->td_flags &= ~TDF_NEEDRESCHED; > >> - td->td_owepreempt = 0; > >>td->td_oncpu = NOCPU; > >> > >>/* > >> > >> Does anybody see any potential problems with such a change? > > > > Hmm, does this mean the preemption will be lost if you break into the > > debugger and continue in the non-panic case? > > Not sure which exact scenario you have in mind. > Please note that the above diff just moves resetting of td_owepreempt to an > earlier place. As far as I can see there are no checks of td_owepreempt value > between the new place and the old places. I'm worried that you are clearing td_owepreempt even in cases where a context switch is not performed. So say you enter DDB with td_owepreempt set and that DDB bails on a context switch. With your change it will now clear td_owepreempt and "lose" the preemption. -- John Baldwin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
on 17/11/2011 21:09 John Baldwin said the following: > On Thursday, November 17, 2011 11:58:03 am Andriy Gapon wrote: >> on 17/11/2011 18:37 John Baldwin said the following: >>> On Thursday, November 17, 2011 4:47:42 am Andriy Gapon wrote: on 17/11/2011 10:34 Andriy Gapon said the following: > on 17/11/2011 10:15 Kostik Belousov said the following: >> I have the following change for eons on my test boxes. Without it, >> I simply cannot get _any_ dump. >> >> diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c >> index 10b89c7..a38e42f 100644 >> --- a/sys/cam/cam_xpt.c >> +++ b/sys/cam/cam_xpt.c >> @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) >> TAILQ_INSERT_TAIL(&cam_simq, sim, links); >> mtx_unlock(&cam_simq_lock); >> sim->flags |= CAM_SIM_ON_DONEQ; >> -if (first) >> +if (first && panicstr == NULL) >> swi_sched(cambio_ih, 0); >> } >> } > > I think that this (or similar) change should go into the patch and the > tree. > And, BTW, I still would like to do something like the following (perhaps with td_oncpu = NOCPU and td_flags &= ~TDF_NEEDRESCHED also moved to the common code): Index: sys/kern/sched_ule.c === --- sys/kern/sched_ule.c (revision 227608) +++ sys/kern/sched_ule.c (working copy) @@ -1790,7 +1790,6 @@ sched_switch(struct thread *td, struct thread *new td->td_oncpu = NOCPU; if (!(flags & SW_PREEMPT)) td->td_flags &= ~TDF_NEEDRESCHED; - td->td_owepreempt = 0; tdq->tdq_switchcnt++; /* * The lock pointer in an idle thread should never change. Reset it Index: sys/kern/kern_synch.c === --- sys/kern/kern_synch.c (revision 227608) +++ sys/kern/kern_synch.c (working copy) @@ -406,6 +406,8 @@ mi_switch(int flags, struct thread *newtd) ("mi_switch: switch must be voluntary or involuntary")); KASSERT(newtd != curthread, ("mi_switch: preempting back to ourself")); + td->td_owepreempt = 0; + /* * Don't perform context switches from the debugger. */ Index: sys/kern/sched_4bsd.c === --- sys/kern/sched_4bsd.c (revision 227608) +++ sys/kern/sched_4bsd.c (working copy) @@ -940,7 +940,6 @@ sched_switch(struct thread *td, struct thread *new td->td_lastcpu = td->td_oncpu; if (!(flags & SW_PREEMPT)) td->td_flags &= ~TDF_NEEDRESCHED; - td->td_owepreempt = 0; td->td_oncpu = NOCPU; /* Does anybody see any potential problems with such a change? >>> >>> Hmm, does this mean the preemption will be lost if you break into the >>> debugger and continue in the non-panic case? >> >> Not sure which exact scenario you have in mind. >> Please note that the above diff just moves resetting of td_owepreempt to an >> earlier place. As far as I can see there are no checks of td_owepreempt >> value >> between the new place and the old places. > > I'm worried that you are clearing td_owepreempt even in cases where a context > switch is not performed. So say you enter DDB with td_owepreempt set and that > DDB bails on a context switch. With your change it will now clear > td_owepreempt > and "lose" the preemption. > And without the change we get the recursion and double-fault because of kdb_switch -> thread_unlock -> spinlock_exit -> critical_exit -> mi_switch in this case ? BTW, it is my opinion that we really should not let the debugger code call mi_switch for any reason. -- Andriy Gapon ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Why not on the ftp fresh snapshot iso?
I'm interested in 8.2 (August-September) and 9.0 (beta) for amd64. Where to download their iso? -- Vladislav V. Prodan System & Network Administrator http://support.od.ua +380 67 4584408, +380 99 4060508 VVP88-RIPE ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
[head tinderbox] failure on arm/arm
TB --- 2011-11-17 18:10:01 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 18:10:01 - starting HEAD tinderbox run for arm/arm TB --- 2011-11-17 18:10:01 - cleaning the object tree TB --- 2011-11-17 18:10:26 - cvsupping the source tree TB --- 2011-11-17 18:10:26 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/arm/arm/supfile TB --- 2011-11-17 18:11:12 - building world TB --- 2011-11-17 18:11:12 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 18:11:12 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 18:11:12 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 18:11:12 - SRCCONF=/dev/null TB --- 2011-11-17 18:11:12 - TARGET=arm TB --- 2011-11-17 18:11:12 - TARGET_ARCH=arm TB --- 2011-11-17 18:11:12 - TZ=UTC TB --- 2011-11-17 18:11:12 - __MAKE_CONF=/dev/null TB --- 2011-11-17 18:11:12 - cd /src TB --- 2011-11-17 18:11:12 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 18:11:12 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 19:06:31 UTC 2011 TB --- 2011-11-17 19:06:31 - cd /src/sys/arm/conf TB --- 2011-11-17 19:06:31 - /usr/sbin/config -m AVILA TB --- 2011-11-17 19:06:31 - building AVILA kernel TB --- 2011-11-17 19:06:31 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 19:06:31 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 19:06:31 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 19:06:31 - SRCCONF=/dev/null TB --- 2011-11-17 19:06:31 - TARGET=arm TB --- 2011-11-17 19:06:31 - TARGET_ARCH=arm TB --- 2011-11-17 19:06:31 - TZ=UTC TB --- 2011-11-17 19:06:31 - __MAKE_CONF=/dev/null TB --- 2011-11-17 19:06:31 - cd /src TB --- 2011-11-17 19:06:31 - /usr/bin/make -B buildkernel KERNCONF=AVILA >>> Kernel build for AVILA started on Thu Nov 17 19:06:31 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for AVILA completed on Thu Nov 17 19:09:34 UTC 2011 TB --- 2011-11-17 19:09:34 - cd /src/sys/arm/conf TB --- 2011-11-17 19:09:34 - /usr/sbin/config -m BWCT TB --- 2011-11-17 19:09:35 - building BWCT kernel TB --- 2011-11-17 19:09:35 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 19:09:35 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 19:09:35 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 19:09:35 - SRCCONF=/dev/null TB --- 2011-11-17 19:09:35 - TARGET=arm TB --- 2011-11-17 19:09:35 - TARGET_ARCH=arm TB --- 2011-11-17 19:09:35 - TZ=UTC TB --- 2011-11-17 19:09:35 - __MAKE_CONF=/dev/null TB --- 2011-11-17 19:09:35 - cd /src TB --- 2011-11-17 19:09:35 - /usr/bin/make -B buildkernel KERNCONF=BWCT >>> Kernel build for BWCT started on Thu Nov 17 19:09:35 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for BWCT completed on Thu Nov 17 19:12:13 UTC 2011 TB --- 2011-11-17 19:12:13 - cd /src/sys/arm/conf TB --- 2011-11-17 19:12:13 - /usr/sbin/config -m CAMBRIA TB --- 2011-11-17 19:12:13 - building CAMBRIA kernel TB --- 2011-11-17 19:12:13 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 19:12:13 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 19:12:13 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 19:12:13 - SRCCONF=/dev/null TB --- 2011-11-17 19:12:13 - TARGET=arm TB --- 2011-11-17 19:12:13 - TARGET_ARCH=arm TB --- 2011-11-17 19:12:13 - TZ=UTC TB --- 2011-11-17 19:12:13 - __MAKE_CONF=/dev/null TB --- 2011-11-17 19:12:13 - cd /src TB --- 2011-11-17 19:12:13 - /usr/bin/make -B buildkernel KERNCONF=CAMBRIA >>> Kernel build for CAMBRIA started on Thu Nov 17 19:12:13 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for CAMBRIA completed on Thu Nov 17 19:15:10 UTC 2011 TB --- 2011-11-17 19:15:10 - cd /src/sys/arm/conf TB --- 2011-11-17 19:15:10 - /usr/sbin/config -m CNS11XXNAS TB --- 2011-11-17 19:15:11 - building CNS11XXNAS kernel TB --- 2011-11-17 19:15:11 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 19:15:11 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 19:15:11 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 19:15:11 - SRCCONF=/dev/null TB --- 2011-11-17 19:15:11 - TARGET=arm TB --- 2011-11-17 19:15:11 - TARGET_ARCH=arm TB --- 2011-11-17 19:15:11 - TZ=UTC TB --- 2011-11-17 19:15:11 - __MAKE_CONF=/dev/null TB --- 2011-11-17 1
[head tinderbox] failure on i386/pc98
TB --- 2011-11-17 18:10:01 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 18:10:01 - starting HEAD tinderbox run for i386/pc98 TB --- 2011-11-17 18:10:01 - cleaning the object tree TB --- 2011-11-17 18:10:25 - cvsupping the source tree TB --- 2011-11-17 18:10:25 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/pc98/supfile TB --- 2011-11-17 18:11:12 - building world TB --- 2011-11-17 18:11:12 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 18:11:12 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 18:11:12 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 18:11:12 - SRCCONF=/dev/null TB --- 2011-11-17 18:11:12 - TARGET=pc98 TB --- 2011-11-17 18:11:12 - TARGET_ARCH=i386 TB --- 2011-11-17 18:11:12 - TZ=UTC TB --- 2011-11-17 18:11:12 - __MAKE_CONF=/dev/null TB --- 2011-11-17 18:11:12 - cd /src TB --- 2011-11-17 18:11:12 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 18:11:12 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 20:21:00 UTC 2011 TB --- 2011-11-17 20:21:01 - generating LINT kernel config TB --- 2011-11-17 20:21:01 - cd /src/sys/pc98/conf TB --- 2011-11-17 20:21:01 - /usr/bin/make -B LINT TB --- 2011-11-17 20:21:01 - cd /src/sys/pc98/conf TB --- 2011-11-17 20:21:01 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 20:21:01 - building GENERIC kernel TB --- 2011-11-17 20:21:01 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 20:21:01 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 20:21:01 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 20:21:01 - SRCCONF=/dev/null TB --- 2011-11-17 20:21:01 - TARGET=pc98 TB --- 2011-11-17 20:21:01 - TARGET_ARCH=i386 TB --- 2011-11-17 20:21:01 - TZ=UTC TB --- 2011-11-17 20:21:01 - __MAKE_CONF=/dev/null TB --- 2011-11-17 20:21:01 - cd /src TB --- 2011-11-17 20:21:01 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 20:21:01 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] objcopy --only-keep-debug if_sf.ko.debug if_sf.ko.symbols objcopy --strip-debug --add-gnu-debuglink=if_sf.ko.symbols if_sf.ko.debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -DPC98 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/pc98.i386/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/pc98.i386/src/sys/GENERIC -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -DPC98 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/pc98.i386/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/pc98.i386/src/sys/GENERIC -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/pc98.i386/src/sys/GENERIC. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-17 20:36:27 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-17 20:36:27 - ERROR: failed to build GENERIC kernel TB --- 2011-11-17 20:36:27 - 7004.05 user 1232.66 system 8786.56 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-pc98.full
[head tinderbox] failure on i386/i386
TB --- 2011-11-17 18:10:01 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 18:10:01 - starting HEAD tinderbox run for i386/i386 TB --- 2011-11-17 18:10:01 - cleaning the object tree TB --- 2011-11-17 18:10:25 - cvsupping the source tree TB --- 2011-11-17 18:10:25 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/i386/supfile TB --- 2011-11-17 18:11:12 - building world TB --- 2011-11-17 18:11:12 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 18:11:12 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 18:11:12 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 18:11:12 - SRCCONF=/dev/null TB --- 2011-11-17 18:11:12 - TARGET=i386 TB --- 2011-11-17 18:11:12 - TARGET_ARCH=i386 TB --- 2011-11-17 18:11:12 - TZ=UTC TB --- 2011-11-17 18:11:12 - __MAKE_CONF=/dev/null TB --- 2011-11-17 18:11:12 - cd /src TB --- 2011-11-17 18:11:12 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 18:11:12 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 20:21:21 UTC 2011 TB --- 2011-11-17 20:21:21 - generating LINT kernel config TB --- 2011-11-17 20:21:21 - cd /src/sys/i386/conf TB --- 2011-11-17 20:21:21 - /usr/bin/make -B LINT TB --- 2011-11-17 20:21:21 - cd /src/sys/i386/conf TB --- 2011-11-17 20:21:21 - /usr/sbin/config -m LINT-NOINET TB --- 2011-11-17 20:21:21 - building LINT-NOINET kernel TB --- 2011-11-17 20:21:21 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 20:21:21 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 20:21:21 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 20:21:21 - SRCCONF=/dev/null TB --- 2011-11-17 20:21:21 - TARGET=i386 TB --- 2011-11-17 20:21:21 - TARGET_ARCH=i386 TB --- 2011-11-17 20:21:21 - TZ=UTC TB --- 2011-11-17 20:21:21 - __MAKE_CONF=/dev/null TB --- 2011-11-17 20:21:21 - cd /src TB --- 2011-11-17 20:21:21 - /usr/bin/make -B buildkernel KERNCONF=LINT-NOINET >>> Kernel build for LINT-NOINET started on Thu Nov 17 20:21:21 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ld -Bshareable -d -warn-common -o if_sf.ko if_sf.kld objcopy --strip-debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/i386.i386/src/sys/LINT-NOINET/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/i386.i386/src/sys/LINT-NOINET -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/i386.i386/src/sys/LINT-NOINET/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/i386.i386/src/sys/LINT-NOINET -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/i386.i386/src/sys/LINT-NOINET. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-17 20:47:47 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-17 20:47:47 - ERROR: failed to build LINT-NOINET kernel TB --- 2011-11-17 20:47:47 - 7591.70 user 1277.73 system 9465.98 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-i386.full ___
Re: Stop scheduler on panic
2011/11/17 Andriy Gapon : > on 17/11/2011 21:09 John Baldwin said the following: >> On Thursday, November 17, 2011 11:58:03 am Andriy Gapon wrote: >>> on 17/11/2011 18:37 John Baldwin said the following: On Thursday, November 17, 2011 4:47:42 am Andriy Gapon wrote: > on 17/11/2011 10:34 Andriy Gapon said the following: >> on 17/11/2011 10:15 Kostik Belousov said the following: >>> I have the following change for eons on my test boxes. Without it, >>> I simply cannot get _any_ dump. >>> >>> diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c >>> index 10b89c7..a38e42f 100644 >>> --- a/sys/cam/cam_xpt.c >>> +++ b/sys/cam/cam_xpt.c >>> @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) >>> TAILQ_INSERT_TAIL(&cam_simq, sim, links); >>> mtx_unlock(&cam_simq_lock); >>> sim->flags |= CAM_SIM_ON_DONEQ; >>> - if (first) >>> + if (first && panicstr == NULL) >>> swi_sched(cambio_ih, 0); >>> } >>> } >> >> I think that this (or similar) change should go into the patch and the >> tree. >> > > And, BTW, I still would like to do something like the following (perhaps > with > td_oncpu = NOCPU and td_flags &= ~TDF_NEEDRESCHED also moved to the > common code): > > Index: sys/kern/sched_ule.c > === > --- sys/kern/sched_ule.c (revision 227608) > +++ sys/kern/sched_ule.c (working copy) > @@ -1790,7 +1790,6 @@ sched_switch(struct thread *td, struct thread *new > td->td_oncpu = NOCPU; > if (!(flags & SW_PREEMPT)) > td->td_flags &= ~TDF_NEEDRESCHED; > - td->td_owepreempt = 0; > tdq->tdq_switchcnt++; > /* > * The lock pointer in an idle thread should never change. Reset it > Index: sys/kern/kern_synch.c > === > --- sys/kern/kern_synch.c (revision 227608) > +++ sys/kern/kern_synch.c (working copy) > @@ -406,6 +406,8 @@ mi_switch(int flags, struct thread *newtd) > ("mi_switch: switch must be voluntary or involuntary")); > KASSERT(newtd != curthread, ("mi_switch: preempting back to ourself")); > > + td->td_owepreempt = 0; > + > /* > * Don't perform context switches from the debugger. > */ > Index: sys/kern/sched_4bsd.c > === > --- sys/kern/sched_4bsd.c (revision 227608) > +++ sys/kern/sched_4bsd.c (working copy) > @@ -940,7 +940,6 @@ sched_switch(struct thread *td, struct thread *new > td->td_lastcpu = td->td_oncpu; > if (!(flags & SW_PREEMPT)) > td->td_flags &= ~TDF_NEEDRESCHED; > - td->td_owepreempt = 0; > td->td_oncpu = NOCPU; > > /* > > Does anybody see any potential problems with such a change? Hmm, does this mean the preemption will be lost if you break into the debugger and continue in the non-panic case? >>> >>> Not sure which exact scenario you have in mind. >>> Please note that the above diff just moves resetting of td_owepreempt to an >>> earlier place. As far as I can see there are no checks of td_owepreempt >>> value >>> between the new place and the old places. >> >> I'm worried that you are clearing td_owepreempt even in cases where a context >> switch is not performed. So say you enter DDB with td_owepreempt set and >> that >> DDB bails on a context switch. With your change it will now clear >> td_owepreempt >> and "lose" the preemption. >> > > And without the change we get the recursion and double-fault because of > kdb_switch -> thread_unlock -> spinlock_exit -> critical_exit -> > mi_switch in this case ? > > BTW, it is my opinion that we really should not let the debugger code call > mi_switch for any reason. Yes, I agree with this, this is why the sched_bind() in boot() is broken (immagine calling things like doadump from KDB. KDB right now can be thought as a first cut of this patch because it does disable the CPUs when entering the context, thus, the bug here is that if you stop all CPUs including CPU0 and later on you want bind on it you are death). We need to discuss this and the patch more extensively, I'm taking my time and hopefully will do a full review during the weekend. Attilio -- Peace can only be achieved by understanding - A. Einstein ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
On Thu, Nov 17, 2011 at 12:54 PM, Attilio Rao wrote: > 2011/11/17 Andriy Gapon : >> BTW, it is my opinion that we really should not let the debugger code call >> mi_switch for any reason. > > Yes, I agree with this, this is why the sched_bind() in boot() is > broken (immagine calling things like doadump from KDB. KDB right now > can be thought as a first cut of this patch because it does disable > the CPUs when entering the context, thus, the bug here is that if you > stop all CPUs including CPU0 and later on you want bind on it you are > death). Another patch related to this area we have at $WORK: #if defined(SMP) - /* -* Bind us to CPU 0 so that all shutdown code runs there. Some -* systems don't shutdown properly (i.e., ACPI power off) if we -* run on another processor. -*/ - thread_lock(curthread); - sched_bind(curthread, 0); - thread_unlock(curthread); - KASSERT(PCPU_GET(cpuid) == 0, ("%s: not running on cpu 0", __func__)); + /* +* sched_bind can't be done reliably inside of panic. cpu_reset() will +* rebind us in any case, more reliably. +*/ + if (panicstr == NULL) { + /* +* Bind us to CPU 0 so that all shutdown code runs there. Some +* systems don't shutdown properly (i.e., ACPI power off) if we +* run on another processor. +*/ + thread_lock(curthread); + sched_bind(curthread, 0); + thread_unlock(curthread); + KASSERT(PCPU_GET(cpuid) == 0, ("boot: not running on cpu 0")); + } #endif /* We're in the process of rebooting. */ rebooting = 1; Cheers, matthew ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
2011/11/17 : > On Thu, Nov 17, 2011 at 12:54 PM, Attilio Rao wrote: >> 2011/11/17 Andriy Gapon : >>> BTW, it is my opinion that we really should not let the debugger code call >>> mi_switch for any reason. >> >> Yes, I agree with this, this is why the sched_bind() in boot() is >> broken (immagine calling things like doadump from KDB. KDB right now >> can be thought as a first cut of this patch because it does disable >> the CPUs when entering the context, thus, the bug here is that if you >> stop all CPUs including CPU0 and later on you want bind on it you are >> death). > > Another patch related to this area we have at $WORK: > > #if defined(SMP) > - /* > - * Bind us to CPU 0 so that all shutdown code runs there. Some > - * systems don't shutdown properly (i.e., ACPI power off) if we > - * run on another processor. > - */ > - thread_lock(curthread); > - sched_bind(curthread, 0); > - thread_unlock(curthread); > - KASSERT(PCPU_GET(cpuid) == 0, ("%s: not running on cpu 0", __func__)); > + /* > + * sched_bind can't be done reliably inside of panic. cpu_reset() > will > + * rebind us in any case, more reliably. > + */ > + if (panicstr == NULL) { > + /* > + * Bind us to CPU 0 so that all shutdown code runs there. > Some > + * systems don't shutdown properly (i.e., ACPI power off) if > we > + * run on another processor. > + */ > + thread_lock(curthread); > + sched_bind(curthread, 0); > + thread_unlock(curthread); > + KASSERT(PCPU_GET(cpuid) == 0, ("boot: not running on cpu 0")); > + } > #endif > /* We're in the process of rebooting. */ > rebooting = 1; This doesn't cover the KDB case which is the most broken here. (I'm a bit unsure about the name of functions and I cannot check now, but in short): - you enter KDB via debug.kdb.enter=1 (for example) - kdb_enter() stop CPUs and if it is on CPU1 it stops CPU0 - you call functions entering boot() from KDB prompt (IIRC "call doadump" should do it) - boot() wants to bind on CPU0 which is turned off This case only take care of panic, which is not enough. Attilio -- Peace can only be achieved by understanding - A. Einstein ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
on 17/11/2011 23:02 m...@freebsd.org said the following: > Another patch related to this area we have at $WORK: > > #if defined(SMP) > - /* > -* Bind us to CPU 0 so that all shutdown code runs there. Some > -* systems don't shutdown properly (i.e., ACPI power off) if we > -* run on another processor. > -*/ > - thread_lock(curthread); > - sched_bind(curthread, 0); > - thread_unlock(curthread); > - KASSERT(PCPU_GET(cpuid) == 0, ("%s: not running on cpu 0", __func__)); > + /* > +* sched_bind can't be done reliably inside of panic. cpu_reset() > will > +* rebind us in any case, more reliably. > +*/ > + if (panicstr == NULL) { > + /* > +* Bind us to CPU 0 so that all shutdown code runs there. > Some > +* systems don't shutdown properly (i.e., ACPI power off) if > we > +* run on another processor. > +*/ > + thread_lock(curthread); > + sched_bind(curthread, 0); > + thread_unlock(curthread); > + KASSERT(PCPU_GET(cpuid) == 0, ("boot: not running on cpu 0")); > + } > #endif > /* We're in the process of rebooting. */ > rebooting = 1; Yes, you have contributed this patch before and it is a part of the bigger stop-scheduler-on-panic patches. Have you had a chance to review those? :) -- Andriy Gapon ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
On Thu, Nov 17, 2011 at 1:08 PM, Andriy Gapon wrote: > on 17/11/2011 23:02 m...@freebsd.org said the following: >> Another patch related to this area we have at $WORK: >> >> #if defined(SMP) >> - /* >> - * Bind us to CPU 0 so that all shutdown code runs there. Some >> - * systems don't shutdown properly (i.e., ACPI power off) if we >> - * run on another processor. >> - */ >> - thread_lock(curthread); >> - sched_bind(curthread, 0); >> - thread_unlock(curthread); >> - KASSERT(PCPU_GET(cpuid) == 0, ("%s: not running on cpu 0", >> __func__)); >> + /* >> + * sched_bind can't be done reliably inside of panic. cpu_reset() >> will >> + * rebind us in any case, more reliably. >> + */ >> + if (panicstr == NULL) { >> + /* >> + * Bind us to CPU 0 so that all shutdown code runs there. >> Some >> + * systems don't shutdown properly (i.e., ACPI power off) if >> we >> + * run on another processor. >> + */ >> + thread_lock(curthread); >> + sched_bind(curthread, 0); >> + thread_unlock(curthread); >> + KASSERT(PCPU_GET(cpuid) == 0, ("boot: not running on cpu >> 0")); >> + } >> #endif >> /* We're in the process of rebooting. */ >> rebooting = 1; > > Yes, you have contributed this patch before and it is a part of the bigger > stop-scheduler-on-panic patches. Have you had a chance to review those? :) It's been so long I don't remember what I've sent where. I did look over the patch but had no additional comments. Cheers, matthew ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Why not on the ftp fresh snapshot iso?
On Thu, Nov 17, 2011 at 11:50 AM, Vladislav V. Prodan wrote: > I'm interested in 8.2 (August-September) and 9.0 (beta) for amd64. > Where to download their iso? http://lists.freebsd.org/pipermail/freebsd-current/2011-November/029373.html ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: [head tinderbox] failure on arm/arm
On Thu, Nov 17, 2011 at 11:55 AM, FreeBSD Tinderbox wrote: > TB --- 2011-11-17 18:10:01 - tinderbox 2.8 running on > freebsd-current.sentex.ca > TB --- 2011-11-17 18:10:01 - starting HEAD tinderbox run for arm/arm > TB --- 2011-11-17 18:10:01 - cleaning the object tree > TB --- 2011-11-17 18:10:26 - cvsupping the source tree > TB --- 2011-11-17 18:10:26 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca > /tinderbox/HEAD/arm/arm/supfile > TB --- 2011-11-17 18:11:12 - building world > TB --- 2011-11-17 18:11:12 - CROSS_BUILD_TESTING=YES > TB --- 2011-11-17 18:11:12 - MAKEOBJDIRPREFIX=/obj > TB --- 2011-11-17 18:11:12 - PATH=/usr/bin:/usr/sbin:/bin:/sbin > TB --- 2011-11-17 18:11:12 - SRCCONF=/dev/null > TB --- 2011-11-17 18:11:12 - TARGET=arm > TB --- 2011-11-17 18:11:12 - TARGET_ARCH=arm > TB --- 2011-11-17 18:11:12 - TZ=UTC > TB --- 2011-11-17 18:11:12 - __MAKE_CONF=/dev/null > TB --- 2011-11-17 18:11:12 - cd /src > TB --- 2011-11-17 18:11:12 - /usr/bin/make -B buildworld World build started on Thu Nov 17 18:11:12 UTC 2011 Rebuilding the temporary build tree stage 1.1: legacy release compatibility shims stage 1.2: bootstrap tools stage 2.1: cleaning up the object tree stage 2.2: rebuilding the object tree stage 2.3: build tools stage 3: cross tools stage 4.1: building includes stage 4.2: building libraries stage 4.3: make dependencies stage 4.4: building everything World build completed on Thu Nov 17 19:06:31 UTC 2011 > TB --- 2011-11-17 19:06:31 - cd /src/sys/arm/conf > TB --- 2011-11-17 19:06:31 - /usr/sbin/config -m AVILA > TB --- 2011-11-17 19:06:31 - building AVILA kernel > TB --- 2011-11-17 19:06:31 - CROSS_BUILD_TESTING=YES > TB --- 2011-11-17 19:06:31 - MAKEOBJDIRPREFIX=/obj > TB --- 2011-11-17 19:06:31 - PATH=/usr/bin:/usr/sbin:/bin:/sbin > TB --- 2011-11-17 19:06:31 - SRCCONF=/dev/null > TB --- 2011-11-17 19:06:31 - TARGET=arm > TB --- 2011-11-17 19:06:31 - TARGET_ARCH=arm > TB --- 2011-11-17 19:06:31 - TZ=UTC > TB --- 2011-11-17 19:06:31 - __MAKE_CONF=/dev/null > TB --- 2011-11-17 19:06:31 - cd /src > TB --- 2011-11-17 19:06:31 - /usr/bin/make -B buildkernel KERNCONF=AVILA Kernel build for AVILA started on Thu Nov 17 19:06:31 UTC 2011 stage 1: configuring the kernel stage 2.1: cleaning up the object tree stage 2.2: rebuilding the object tree stage 2.3: build tools stage 3.1: making dependencies stage 3.2: building everything Kernel build for AVILA completed on Thu Nov 17 19:09:34 UTC 2011 > TB --- 2011-11-17 19:09:34 - cd /src/sys/arm/conf > TB --- 2011-11-17 19:09:34 - /usr/sbin/config -m BWCT > TB --- 2011-11-17 19:09:35 - building BWCT kernel > TB --- 2011-11-17 19:09:35 - CROSS_BUILD_TESTING=YES > TB --- 2011-11-17 19:09:35 - MAKEOBJDIRPREFIX=/obj > TB --- 2011-11-17 19:09:35 - PATH=/usr/bin:/usr/sbin:/bin:/sbin > TB --- 2011-11-17 19:09:35 - SRCCONF=/dev/null > TB --- 2011-11-17 19:09:35 - TARGET=arm > TB --- 2011-11-17 19:09:35 - TARGET_ARCH=arm > TB --- 2011-11-17 19:09:35 - TZ=UTC > TB --- 2011-11-17 19:09:35 - __MAKE_CONF=/dev/null > TB --- 2011-11-17 19:09:35 - cd /src > TB --- 2011-11-17 19:09:35 - /usr/bin/make -B buildkernel KERNCONF=BWCT Kernel build for BWCT started on Thu Nov 17 19:09:35 UTC 2011 stage 1: configuring the kernel stage 2.1: cleaning up the object tree stage 2.2: rebuilding the object tree stage 2.3: build tools stage 3.1: making dependencies stage 3.2: building everything Kernel build for BWCT completed on Thu Nov 17 19:12:13 UTC 2011 > TB --- 2011-11-17 19:12:13 - cd /src/sys/arm/conf > TB --- 2011-11-17 19:12:13 - /usr/sbin/config -m CAMBRIA > TB --- 2011-11-17 19:12:13 - building CAMBRIA kernel > TB --- 2011-11-17 19:12:13 - CROSS_BUILD_TESTING=YES > TB --- 2011-11-17 19:12:13 - MAKEOBJDIRPREFIX=/obj > TB --- 2011-11-17 19:12:13 - PATH=/usr/bin:/usr/sbin:/bin:/sbin > TB --- 2011-11-17 19:12:13 - SRCCONF=/dev/null > TB --- 2011-11-17 19:12:13 - TARGET=arm > TB --- 2011-11-17 19:12:13 - TARGET_ARCH=arm > TB --- 2011-11-17 19:12:13 - TZ=UTC > TB --- 2011-11-17 19:12:13 - __MAKE_CONF=/dev/null > TB --- 2011-11-17 19:12:13 - cd /src > TB --- 2011-11-17 19:12:13 - /usr/bin/make -B buildkernel KERNCONF=CAMBRIA Kernel build for CAMBRIA started on Thu Nov 17 19:12:13 UTC 2011 stage 1: configuring the kernel stage 2.1: cleaning up the object tree stage 2.2: rebuilding the object tree stage 2.3: build tools stage 3.1: making dependencies stage 3.2: building everything Kernel build for CAMBRIA completed on Thu Nov 17 19:15:10 UTC 2011 > TB --- 2011-11-17 19:15:10 - cd /src/sys/arm/conf > TB --- 2011-11-17 19:15:10 - /usr/sbin/config -m CNS11XXNAS > TB --- 2011-11-17 19:15:11 - building CNS11XXNAS kernel > TB --- 2011-11-17 19:15:11 - CROSS_BUILD_TESTING=YES > TB --- 2011-11-17 19:15:11 - MAKEOBJDIRPREFIX=/obj > TB --- 2011-11-17 19:15:11 - PATH=/usr/bin:/usr/sbin:/bin:/sbin > TB --- 2011-
Re: [PATCH] Detect GNU/kFreeBSD in user-visible kernel headers
On Thursday, November 17, 2011 2:02:02 pm Robert Millan wrote: > 2011/11/17 John Baldwin : > > I recall the discussion from earlier. I can't recall if I had replied to it > > though. :-/ In my current opinion, I think it would be fine to define > > __FreeBSD_kernel__ on FreeBSD and to do it in for now until > > all > > the compilers we use have been updated to define it automatically (which may > > be a long time). I think it will also be fine to patch in-system headers to > > use __FreeBSD_kernel__ once is defined. Unfortunately headers > > in 3rd party software are going to have to check for both __FreeBSD__ and > > __FreeBSD_kernel__ to support both GNU/kFreeBSD and older FreeBSD for the > > foreseeable future. I think that is fine, but that the sooner we add > > __FreeBSD_kernel__ on FreeBSD the sooner we get the clock started for a day > > when those extra checks can go away. I would also be fine with MFC'ing the > > addition of __FreeBSD_kernel__ to older branches (at least 7 - 9) as well. > > Well, here's a patch then. I wrote a comment in it trying to explain > the situation. Please let me know what you think. Hmm, I wonder if it's better to use the #ifndef approach rather than #undef so that when compilers are updated to DTRT we will honor their settings? (And eventually this could be maybe removed from param.h altogether.) -- John Baldwin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
On Thursday, November 17, 2011 2:42:51 pm Andriy Gapon wrote: > on 17/11/2011 21:09 John Baldwin said the following: > > On Thursday, November 17, 2011 11:58:03 am Andriy Gapon wrote: > >> on 17/11/2011 18:37 John Baldwin said the following: > >>> On Thursday, November 17, 2011 4:47:42 am Andriy Gapon wrote: > on 17/11/2011 10:34 Andriy Gapon said the following: > > on 17/11/2011 10:15 Kostik Belousov said the following: > >> I have the following change for eons on my test boxes. Without it, > >> I simply cannot get _any_ dump. > >> > >> diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > >> index 10b89c7..a38e42f 100644 > >> --- a/sys/cam/cam_xpt.c > >> +++ b/sys/cam/cam_xpt.c > >> @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > >>TAILQ_INSERT_TAIL(&cam_simq, sim, links); > >>mtx_unlock(&cam_simq_lock); > >>sim->flags |= CAM_SIM_ON_DONEQ; > >> - if (first) > >> + if (first && panicstr == NULL) > >>swi_sched(cambio_ih, 0); > >>} > >>} > > > > I think that this (or similar) change should go into the patch and the > > tree. > > > > And, BTW, I still would like to do something like the following (perhaps > with > td_oncpu = NOCPU and td_flags &= ~TDF_NEEDRESCHED also moved to the > common code): > > Index: sys/kern/sched_ule.c > === > --- sys/kern/sched_ule.c (revision 227608) > +++ sys/kern/sched_ule.c (working copy) > @@ -1790,7 +1790,6 @@ sched_switch(struct thread *td, struct thread *new > td->td_oncpu = NOCPU; > if (!(flags & SW_PREEMPT)) > td->td_flags &= ~TDF_NEEDRESCHED; > -td->td_owepreempt = 0; > tdq->tdq_switchcnt++; > /* > * The lock pointer in an idle thread should never change. > Reset it > Index: sys/kern/kern_synch.c > === > --- sys/kern/kern_synch.c(revision 227608) > +++ sys/kern/kern_synch.c(working copy) > @@ -406,6 +406,8 @@ mi_switch(int flags, struct thread *newtd) > ("mi_switch: switch must be voluntary or involuntary")); > KASSERT(newtd != curthread, ("mi_switch: preempting back to > ourself")); > > +td->td_owepreempt = 0; > + > /* > * Don't perform context switches from the debugger. > */ > Index: sys/kern/sched_4bsd.c > === > --- sys/kern/sched_4bsd.c(revision 227608) > +++ sys/kern/sched_4bsd.c(working copy) > @@ -940,7 +940,6 @@ sched_switch(struct thread *td, struct thread *new > td->td_lastcpu = td->td_oncpu; > if (!(flags & SW_PREEMPT)) > td->td_flags &= ~TDF_NEEDRESCHED; > -td->td_owepreempt = 0; > td->td_oncpu = NOCPU; > > /* > > Does anybody see any potential problems with such a change? > >>> > >>> Hmm, does this mean the preemption will be lost if you break into the > >>> debugger and continue in the non-panic case? > >> > >> Not sure which exact scenario you have in mind. > >> Please note that the above diff just moves resetting of td_owepreempt to an > >> earlier place. As far as I can see there are no checks of td_owepreempt > >> value > >> between the new place and the old places. > > > > I'm worried that you are clearing td_owepreempt even in cases where a > > context > > switch is not performed. So say you enter DDB with td_owepreempt set and > > that > > DDB bails on a context switch. With your change it will now clear > > td_owepreempt > > and "lose" the preemption. > > > > And without the change we get the recursion and double-fault because of > kdb_switch -> thread_unlock -> spinlock_exit -> critical_exit -> > mi_switch in this case ? > > BTW, it is my opinion that we really should not let the debugger code call > mi_switch for any reason. Hmmm, you could also make critical_exit() not perform deferred preemptions if SCHEDULER_STOPPED? That would fix the recursion and still let the preemption "work" when resuming from the debugger? -- John Baldwin ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Stop scheduler on panic
On Thursday, November 17, 2011 4:35:07 pm John Baldwin wrote: > On Thursday, November 17, 2011 2:42:51 pm Andriy Gapon wrote: > > on 17/11/2011 21:09 John Baldwin said the following: > > > On Thursday, November 17, 2011 11:58:03 am Andriy Gapon wrote: > > >> on 17/11/2011 18:37 John Baldwin said the following: > > >>> On Thursday, November 17, 2011 4:47:42 am Andriy Gapon wrote: > > on 17/11/2011 10:34 Andriy Gapon said the following: > > > on 17/11/2011 10:15 Kostik Belousov said the following: > > >> I have the following change for eons on my test boxes. Without it, > > >> I simply cannot get _any_ dump. > > >> > > >> diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c > > >> index 10b89c7..a38e42f 100644 > > >> --- a/sys/cam/cam_xpt.c > > >> +++ b/sys/cam/cam_xpt.c > > >> @@ -4230,7 +4230,7 @@ xpt_done(union ccb *done_ccb) > > >> TAILQ_INSERT_TAIL(&cam_simq, sim, links); > > >> mtx_unlock(&cam_simq_lock); > > >> sim->flags |= CAM_SIM_ON_DONEQ; > > >> -if (first) > > >> +if (first && panicstr == NULL) > > >> swi_sched(cambio_ih, 0); > > >> } > > >> } > > > > > > I think that this (or similar) change should go into the patch and > > > the tree. > > > > > > > And, BTW, I still would like to do something like the following > > (perhaps with > > td_oncpu = NOCPU and td_flags &= ~TDF_NEEDRESCHED also moved to the > > common code): > > > > Index: sys/kern/sched_ule.c > > === > > --- sys/kern/sched_ule.c (revision 227608) > > +++ sys/kern/sched_ule.c (working copy) > > @@ -1790,7 +1790,6 @@ sched_switch(struct thread *td, struct thread > > *new > > td->td_oncpu = NOCPU; > > if (!(flags & SW_PREEMPT)) > > td->td_flags &= ~TDF_NEEDRESCHED; > > - td->td_owepreempt = 0; > > tdq->tdq_switchcnt++; > > /* > > * The lock pointer in an idle thread should never change. > > Reset it > > Index: sys/kern/kern_synch.c > > === > > --- sys/kern/kern_synch.c (revision 227608) > > +++ sys/kern/kern_synch.c (working copy) > > @@ -406,6 +406,8 @@ mi_switch(int flags, struct thread *newtd) > > ("mi_switch: switch must be voluntary or involuntary")); > > KASSERT(newtd != curthread, ("mi_switch: preempting back to > > ourself")); > > > > + td->td_owepreempt = 0; > > + > > /* > > * Don't perform context switches from the debugger. > > */ > > Index: sys/kern/sched_4bsd.c > > === > > --- sys/kern/sched_4bsd.c (revision 227608) > > +++ sys/kern/sched_4bsd.c (working copy) > > @@ -940,7 +940,6 @@ sched_switch(struct thread *td, struct thread *new > > td->td_lastcpu = td->td_oncpu; > > if (!(flags & SW_PREEMPT)) > > td->td_flags &= ~TDF_NEEDRESCHED; > > - td->td_owepreempt = 0; > > td->td_oncpu = NOCPU; > > > > /* > > > > Does anybody see any potential problems with such a change? > > >>> > > >>> Hmm, does this mean the preemption will be lost if you break into the > > >>> debugger and continue in the non-panic case? > > >> > > >> Not sure which exact scenario you have in mind. > > >> Please note that the above diff just moves resetting of td_owepreempt to > > >> an > > >> earlier place. As far as I can see there are no checks of td_owepreempt > > >> value > > >> between the new place and the old places. > > > > > > I'm worried that you are clearing td_owepreempt even in cases where a > > > context > > > switch is not performed. So say you enter DDB with td_owepreempt set and > > > that > > > DDB bails on a context switch. With your change it will now clear > > > td_owepreempt > > > and "lose" the preemption. > > > > > > > And without the change we get the recursion and double-fault because of > > kdb_switch -> thread_unlock -> spinlock_exit -> critical_exit -> > > mi_switch in this case ? > > > > BTW, it is my opinion that we really should not let the debugger code call > > mi_switch for any reason. > > Hmmm, you could also make critical_exit() not perform deferred preemptions > if SCHEDULER_STOPPED? That would fix the recursion and still let the > preemption "work" when resuming from the debugger? Or you could let the debugger run in a permament critical section (though perhaps that breaks too many other things like debugger routines that try to use locks like the 'kill' command
[head tinderbox] failure on ia64/ia64
TB --- 2011-11-17 19:55:19 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 19:55:19 - starting HEAD tinderbox run for ia64/ia64 TB --- 2011-11-17 19:55:19 - cleaning the object tree TB --- 2011-11-17 19:55:32 - cvsupping the source tree TB --- 2011-11-17 19:55:32 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/ia64/ia64/supfile TB --- 2011-11-17 19:55:45 - building world TB --- 2011-11-17 19:55:45 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 19:55:45 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 19:55:45 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 19:55:45 - SRCCONF=/dev/null TB --- 2011-11-17 19:55:45 - TARGET=ia64 TB --- 2011-11-17 19:55:45 - TARGET_ARCH=ia64 TB --- 2011-11-17 19:55:45 - TZ=UTC TB --- 2011-11-17 19:55:45 - __MAKE_CONF=/dev/null TB --- 2011-11-17 19:55:45 - cd /src TB --- 2011-11-17 19:55:45 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 19:55:45 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 21:24:15 UTC 2011 TB --- 2011-11-17 21:24:15 - generating LINT kernel config TB --- 2011-11-17 21:24:15 - cd /src/sys/ia64/conf TB --- 2011-11-17 21:24:15 - /usr/bin/make -B LINT TB --- 2011-11-17 21:24:15 - cd /src/sys/ia64/conf TB --- 2011-11-17 21:24:15 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 21:24:15 - building GENERIC kernel TB --- 2011-11-17 21:24:15 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 21:24:15 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 21:24:15 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 21:24:15 - SRCCONF=/dev/null TB --- 2011-11-17 21:24:15 - TARGET=ia64 TB --- 2011-11-17 21:24:15 - TARGET_ARCH=ia64 TB --- 2011-11-17 21:24:15 - TZ=UTC TB --- 2011-11-17 21:24:15 - __MAKE_CONF=/dev/null TB --- 2011-11-17 21:24:15 - cd /src TB --- 2011-11-17 21:24:15 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 21:24:16 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/ia64.ia64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/ia64.ia64/src/sys/GENERIC -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/ia64.ia64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/ia64.ia64/src/sys/GENERIC -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/ia64.ia64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/ia64.ia64/src/sys/GENERIC -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c: In function 'sfxge_ev_rx': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c:120: warning: implicit declaration of function 'prefetch_read_many' /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c:120: warning: nested extern declaration of 'prefetch_read_many' [-Wnested-externs] *** Error code 1 Stop in /src/sys/modules/
Re: Why not on the ftp fresh snapshot iso?
17.11.2011 23:28, Garrett Cooper wrote: > On Thu, Nov 17, 2011 at 11:50 AM, Vladislav V. Prodan > wrote: >> I'm interested in 8.2 (August-September) and 9.0 (beta) for amd64. >> Where to download their iso? > > http://lists.freebsd.org/pipermail/freebsd-current/2011-November/029373.html And why could not create ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/9.0-RC2/ ? And put in a non-obvious directory ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/9.0/ ? -- Vladislav V. Prodan System & Network Administrator http://support.od.ua +380 67 4584408, +380 99 4060508 VVP88-RIPE ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
[head tinderbox] failure on powerpc/powerpc
TB --- 2011-11-17 20:47:47 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 20:47:47 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2011-11-17 20:47:47 - cleaning the object tree TB --- 2011-11-17 20:48:01 - cvsupping the source tree TB --- 2011-11-17 20:48:01 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2011-11-17 20:48:15 - building world TB --- 2011-11-17 20:48:15 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 20:48:15 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 20:48:15 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 20:48:15 - SRCCONF=/dev/null TB --- 2011-11-17 20:48:15 - TARGET=powerpc TB --- 2011-11-17 20:48:15 - TARGET_ARCH=powerpc TB --- 2011-11-17 20:48:15 - TZ=UTC TB --- 2011-11-17 20:48:15 - __MAKE_CONF=/dev/null TB --- 2011-11-17 20:48:15 - cd /src TB --- 2011-11-17 20:48:15 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 20:48:15 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 22:50:00 UTC 2011 TB --- 2011-11-17 22:50:00 - generating LINT kernel config TB --- 2011-11-17 22:50:00 - cd /src/sys/powerpc/conf TB --- 2011-11-17 22:50:00 - /usr/bin/make -B LINT TB --- 2011-11-17 22:50:00 - cd /src/sys/powerpc/conf TB --- 2011-11-17 22:50:00 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 22:50:00 - building GENERIC kernel TB --- 2011-11-17 22:50:00 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 22:50:00 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 22:50:00 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 22:50:00 - SRCCONF=/dev/null TB --- 2011-11-17 22:50:00 - TARGET=powerpc TB --- 2011-11-17 22:50:00 - TARGET_ARCH=powerpc TB --- 2011-11-17 22:50:00 - TZ=UTC TB --- 2011-11-17 22:50:00 - __MAKE_CONF=/dev/null TB --- 2011-11-17 22:50:00 - cd /src TB --- 2011-11-17 22:50:00 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 22:50:01 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] objcopy --only-keep-debug if_sf.ko.debug if_sf.ko.symbols objcopy --strip-debug --add-gnu-debuglink=if_sf.ko.symbols if_sf.ko.debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc/src/sys/GENERIC -msoft-float -mno-altivec -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc/src/sys/GENERIC -msoft-float -mno-altivec -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/powerpc.powerpc/src/sys/GENERIC. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-17 23:03:43 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-17 23:03:43 - ERROR: failed to build GENERIC kernel TB --- 2011-11-17 23:03:43 - 6528.48 user 1127.16 system 8155.85 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full __
[head tinderbox] failure on sparc64/sparc64
TB --- 2011-11-17 21:44:05 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 21:44:05 - starting HEAD tinderbox run for sparc64/sparc64 TB --- 2011-11-17 21:44:05 - cleaning the object tree TB --- 2011-11-17 21:44:16 - cvsupping the source tree TB --- 2011-11-17 21:44:16 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/sparc64/sparc64/supfile TB --- 2011-11-17 21:44:27 - building world TB --- 2011-11-17 21:44:27 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 21:44:27 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 21:44:27 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 21:44:27 - SRCCONF=/dev/null TB --- 2011-11-17 21:44:27 - TARGET=sparc64 TB --- 2011-11-17 21:44:27 - TARGET_ARCH=sparc64 TB --- 2011-11-17 21:44:27 - TZ=UTC TB --- 2011-11-17 21:44:27 - __MAKE_CONF=/dev/null TB --- 2011-11-17 21:44:27 - cd /src TB --- 2011-11-17 21:44:27 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 21:44:28 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Nov 17 22:50:44 UTC 2011 TB --- 2011-11-17 22:50:44 - generating LINT kernel config TB --- 2011-11-17 22:50:44 - cd /src/sys/sparc64/conf TB --- 2011-11-17 22:50:44 - /usr/bin/make -B LINT TB --- 2011-11-17 22:50:44 - cd /src/sys/sparc64/conf TB --- 2011-11-17 22:50:44 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 22:50:44 - building GENERIC kernel TB --- 2011-11-17 22:50:44 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 22:50:44 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 22:50:44 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 22:50:44 - SRCCONF=/dev/null TB --- 2011-11-17 22:50:44 - TARGET=sparc64 TB --- 2011-11-17 22:50:44 - TARGET_ARCH=sparc64 TB --- 2011-11-17 22:50:44 - TZ=UTC TB --- 2011-11-17 22:50:44 - __MAKE_CONF=/dev/null TB --- 2011-11-17 22:50:44 - cd /src TB --- 2011-11-17 22:50:44 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Nov 17 22:50:44 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/sparc64.sparc64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/sparc64.sparc64/src/sys/GENERIC -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/sparc64.sparc64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/sparc64.sparc64/src/sys/GENERIC -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/sparc64.sparc64/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/sparc64.sparc64/src/sys/GENERIC -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c: In function 'sfxge_ev_rx': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c:120: warning: implicit declaration of function 'prefetch_read_many' /src/sys/modules/sfxge/../../dev/sfx
[head tinderbox] failure on powerpc64/powerpc
TB --- 2011-11-17 21:36:51 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 21:36:51 - starting HEAD tinderbox run for powerpc64/powerpc TB --- 2011-11-17 21:36:51 - cleaning the object tree TB --- 2011-11-17 21:37:07 - cvsupping the source tree TB --- 2011-11-17 21:37:07 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc64/powerpc/supfile TB --- 2011-11-17 21:37:19 - building world TB --- 2011-11-17 21:37:19 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 21:37:19 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 21:37:19 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 21:37:19 - SRCCONF=/dev/null TB --- 2011-11-17 21:37:19 - TARGET=powerpc TB --- 2011-11-17 21:37:19 - TARGET_ARCH=powerpc64 TB --- 2011-11-17 21:37:19 - TZ=UTC TB --- 2011-11-17 21:37:19 - __MAKE_CONF=/dev/null TB --- 2011-11-17 21:37:19 - cd /src TB --- 2011-11-17 21:37:19 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 21:37:20 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> stage 5.1: building 32 bit shim libraries >>> World build completed on Thu Nov 17 23:15:55 UTC 2011 TB --- 2011-11-17 23:15:55 - generating LINT kernel config TB --- 2011-11-17 23:15:55 - cd /src/sys/powerpc/conf TB --- 2011-11-17 23:15:55 - /usr/bin/make -B LINT TB --- 2011-11-17 23:15:55 - cd /src/sys/powerpc/conf TB --- 2011-11-17 23:15:55 - /usr/sbin/config -m GENERIC TB --- 2011-11-17 23:15:55 - skipping GENERIC kernel TB --- 2011-11-17 23:15:55 - cd /src/sys/powerpc/conf TB --- 2011-11-17 23:15:55 - /usr/sbin/config -m GENERIC64 TB --- 2011-11-17 23:15:55 - building GENERIC64 kernel TB --- 2011-11-17 23:15:55 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 23:15:55 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 23:15:55 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 23:15:55 - SRCCONF=/dev/null TB --- 2011-11-17 23:15:55 - TARGET=powerpc TB --- 2011-11-17 23:15:55 - TARGET_ARCH=powerpc64 TB --- 2011-11-17 23:15:55 - TZ=UTC TB --- 2011-11-17 23:15:55 - __MAKE_CONF=/dev/null TB --- 2011-11-17 23:15:55 - cd /src TB --- 2011-11-17 23:15:55 - /usr/bin/make -B buildkernel KERNCONF=GENERIC64 >>> Kernel build for GENERIC64 started on Thu Nov 17 23:15:55 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc64/src/sys/GENERIC64/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc64/src/sys/GENERIC64 -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc64/src/sys/GENERIC64/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc64/src/sys/GENERIC64 -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc64/src/sys/GENERIC64/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc64/src/sys/GENERIC64 -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -ffo
[head tinderbox] failure on arm/arm
TB --- 2011-11-17 23:30:01 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 23:30:01 - starting HEAD tinderbox run for arm/arm TB --- 2011-11-17 23:30:01 - cleaning the object tree TB --- 2011-11-17 23:30:26 - cvsupping the source tree TB --- 2011-11-17 23:30:26 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/arm/arm/supfile TB --- 2011-11-17 23:30:43 - building world TB --- 2011-11-17 23:30:43 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 23:30:43 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 23:30:43 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 23:30:43 - SRCCONF=/dev/null TB --- 2011-11-17 23:30:43 - TARGET=arm TB --- 2011-11-17 23:30:43 - TARGET_ARCH=arm TB --- 2011-11-17 23:30:43 - TZ=UTC TB --- 2011-11-17 23:30:43 - __MAKE_CONF=/dev/null TB --- 2011-11-17 23:30:43 - cd /src TB --- 2011-11-17 23:30:43 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 23:30:45 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Fri Nov 18 00:26:20 UTC 2011 TB --- 2011-11-18 00:26:20 - cd /src/sys/arm/conf TB --- 2011-11-18 00:26:20 - /usr/sbin/config -m AVILA TB --- 2011-11-18 00:26:20 - building AVILA kernel TB --- 2011-11-18 00:26:20 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 00:26:20 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 00:26:20 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 00:26:20 - SRCCONF=/dev/null TB --- 2011-11-18 00:26:20 - TARGET=arm TB --- 2011-11-18 00:26:20 - TARGET_ARCH=arm TB --- 2011-11-18 00:26:20 - TZ=UTC TB --- 2011-11-18 00:26:20 - __MAKE_CONF=/dev/null TB --- 2011-11-18 00:26:20 - cd /src TB --- 2011-11-18 00:26:20 - /usr/bin/make -B buildkernel KERNCONF=AVILA >>> Kernel build for AVILA started on Fri Nov 18 00:26:20 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for AVILA completed on Fri Nov 18 00:29:32 UTC 2011 TB --- 2011-11-18 00:29:32 - cd /src/sys/arm/conf TB --- 2011-11-18 00:29:32 - /usr/sbin/config -m BWCT TB --- 2011-11-18 00:29:32 - building BWCT kernel TB --- 2011-11-18 00:29:32 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 00:29:32 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 00:29:32 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 00:29:32 - SRCCONF=/dev/null TB --- 2011-11-18 00:29:32 - TARGET=arm TB --- 2011-11-18 00:29:32 - TARGET_ARCH=arm TB --- 2011-11-18 00:29:32 - TZ=UTC TB --- 2011-11-18 00:29:32 - __MAKE_CONF=/dev/null TB --- 2011-11-18 00:29:32 - cd /src TB --- 2011-11-18 00:29:32 - /usr/bin/make -B buildkernel KERNCONF=BWCT >>> Kernel build for BWCT started on Fri Nov 18 00:29:32 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for BWCT completed on Fri Nov 18 00:31:55 UTC 2011 TB --- 2011-11-18 00:31:55 - cd /src/sys/arm/conf TB --- 2011-11-18 00:31:55 - /usr/sbin/config -m CAMBRIA TB --- 2011-11-18 00:31:55 - building CAMBRIA kernel TB --- 2011-11-18 00:31:55 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 00:31:55 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 00:31:55 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 00:31:55 - SRCCONF=/dev/null TB --- 2011-11-18 00:31:55 - TARGET=arm TB --- 2011-11-18 00:31:55 - TARGET_ARCH=arm TB --- 2011-11-18 00:31:55 - TZ=UTC TB --- 2011-11-18 00:31:55 - __MAKE_CONF=/dev/null TB --- 2011-11-18 00:31:55 - cd /src TB --- 2011-11-18 00:31:55 - /usr/bin/make -B buildkernel KERNCONF=CAMBRIA >>> Kernel build for CAMBRIA started on Fri Nov 18 00:31:55 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for CAMBRIA completed on Fri Nov 18 00:34:51 UTC 2011 TB --- 2011-11-18 00:34:51 - cd /src/sys/arm/conf TB --- 2011-11-18 00:34:51 - /usr/sbin/config -m CNS11XXNAS TB --- 2011-11-18 00:34:51 - building CNS11XXNAS kernel TB --- 2011-11-18 00:34:51 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 00:34:51 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 00:34:51 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 00:34:51 - SRCCONF=/dev/null TB --- 2011-11-18 00:34:51 - TARGET=arm TB --- 2011-11-18 00:34:51 - TARGET_ARCH=arm TB --- 2011-11-18 00:34:51 - TZ=UTC TB --- 2011-11-18 00:34:51 - __MAKE_CONF=/dev/null TB --- 2011-11-18 0
Re: Why not on the ftp fresh snapshot iso?
On Nov 17, 2011, at 2:51 PM, Vladislav V. Prodan wrote: > 17.11.2011 23:28, Garrett Cooper wrote: >> On Thu, Nov 17, 2011 at 11:50 AM, Vladislav V. Prodan >> wrote: >>> I'm interested in 8.2 (August-September) and 9.0 (beta) for amd64. >>> Where to download their iso? >> >> http://lists.freebsd.org/pipermail/freebsd-current/2011-November/029373.html > > And why could not create > ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/9.0-RC2/ ? > And put in a non-obvious directory > ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/9.0/ ? Search through the archives and you'll discover why things are this way. -Garrett___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: spamcop abuse of power
Reference: > From: Dan The Man > Date: Thu, 17 Nov 2011 07:37:32 -0600 (CST) Dan The Man wrote: > > Today I had an unhappy unix student try to submit an assignment to me and > could not. Spamcop has decided to go off blacklisting all yahoo/shaw etc > servers worldwide. > > Example Solution Postfix: > remove: reject_rbl_client bl.spamcop.net > from your smtpd_recipient_restrictions line until they fix their abuse > issues. Better not dump Spamcop, Better let people dump Yahoo. Yahoo deserve grief since they abandoned their abuse@ address some time back. Yahoo make money hosting email, some inevitably spammers, but when innocent domain admin recipients (inc. me) forward spam from Yahoo customers back to abuse@Yahoo, Yahoo toss it back demanding we work unpaid for Yahoo, analaysing their spam & filling a Yahoo web form. I'm an unpaid admin, & Yahoo wastes my time. I recall Yahoo laid off some admins a while after they abandoned abuse@, offloading spam processing on innocent recipients must have helped reduce their business. Though latest RFC may no longer require an abuse@ address, & might consider an http: form acceptable, who but a commercial ISP's lobbyist would consider that transfer & imposition of work from polluting transmitter domain to innocent recioient domain as fair ? From a paid profiting commercial ISP source of the spam, paid to work, to instead burden innocent admins, some of whom arent even paid to admin. BTW One can still forward spam back to postmaster@yahoo, (eg after it bounces from abuse@) (prob cos if no postmaster@ they'd be in breach of RFCs , another reason to block). Yahoo then don't just send "We zapped that spammer account" responses - Yahoo send questionaires to consume more of your time. Yahoo need disciplining. Spamcop does not report blocked @ Fri Nov 18 02:10:40 CET 2011 http://www.spamcop.net/w3m?action=checkblock&ip=212.82.109.132 Cheers, Julian -- Julian Stacey, BSD Unix Linux C Sys Eng Consultants Munich http://berklix.com Reply below not above, cumulative like a play script, & indent with "> ". Format: Plain text. Not HTML, multipart/alternative, base64, quoted-printable. ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
[head tinderbox] failure on i386/pc98
TB --- 2011-11-17 23:30:01 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 23:30:01 - starting HEAD tinderbox run for i386/pc98 TB --- 2011-11-17 23:30:01 - cleaning the object tree TB --- 2011-11-17 23:30:25 - cvsupping the source tree TB --- 2011-11-17 23:30:25 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/pc98/supfile TB --- 2011-11-17 23:30:41 - building world TB --- 2011-11-17 23:30:41 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 23:30:41 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 23:30:41 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 23:30:41 - SRCCONF=/dev/null TB --- 2011-11-17 23:30:41 - TARGET=pc98 TB --- 2011-11-17 23:30:41 - TARGET_ARCH=i386 TB --- 2011-11-17 23:30:41 - TZ=UTC TB --- 2011-11-17 23:30:41 - __MAKE_CONF=/dev/null TB --- 2011-11-17 23:30:41 - cd /src TB --- 2011-11-17 23:30:41 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 23:30:42 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Fri Nov 18 01:39:16 UTC 2011 TB --- 2011-11-18 01:39:16 - generating LINT kernel config TB --- 2011-11-18 01:39:16 - cd /src/sys/pc98/conf TB --- 2011-11-18 01:39:16 - /usr/bin/make -B LINT TB --- 2011-11-18 01:39:17 - cd /src/sys/pc98/conf TB --- 2011-11-18 01:39:17 - /usr/sbin/config -m GENERIC TB --- 2011-11-18 01:39:17 - building GENERIC kernel TB --- 2011-11-18 01:39:17 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 01:39:17 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 01:39:17 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 01:39:17 - SRCCONF=/dev/null TB --- 2011-11-18 01:39:17 - TARGET=pc98 TB --- 2011-11-18 01:39:17 - TARGET_ARCH=i386 TB --- 2011-11-18 01:39:17 - TZ=UTC TB --- 2011-11-18 01:39:17 - __MAKE_CONF=/dev/null TB --- 2011-11-18 01:39:17 - cd /src TB --- 2011-11-18 01:39:17 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Fri Nov 18 01:39:17 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] objcopy --only-keep-debug if_sf.ko.debug if_sf.ko.symbols objcopy --strip-debug --add-gnu-debuglink=if_sf.ko.symbols if_sf.ko.debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -DPC98 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/pc98.i386/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/pc98.i386/src/sys/GENERIC -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -DPC98 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/pc98.i386/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/pc98.i386/src/sys/GENERIC -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/pc98.i386/src/sys/GENERIC. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-18 01:54:47 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-18 01:54:47 - ERROR: failed to build GENERIC kernel TB --- 2011-11-18 01:54:47 - 6939.74 user 1226.12 system 8686.42 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-pc98.full
[head tinderbox] failure on i386/i386
TB --- 2011-11-17 23:30:01 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-17 23:30:01 - starting HEAD tinderbox run for i386/i386 TB --- 2011-11-17 23:30:01 - cleaning the object tree TB --- 2011-11-17 23:30:25 - cvsupping the source tree TB --- 2011-11-17 23:30:25 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/i386/supfile TB --- 2011-11-17 23:30:41 - building world TB --- 2011-11-17 23:30:41 - CROSS_BUILD_TESTING=YES TB --- 2011-11-17 23:30:41 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-17 23:30:41 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-17 23:30:41 - SRCCONF=/dev/null TB --- 2011-11-17 23:30:41 - TARGET=i386 TB --- 2011-11-17 23:30:41 - TARGET_ARCH=i386 TB --- 2011-11-17 23:30:41 - TZ=UTC TB --- 2011-11-17 23:30:41 - __MAKE_CONF=/dev/null TB --- 2011-11-17 23:30:41 - cd /src TB --- 2011-11-17 23:30:41 - /usr/bin/make -B buildworld >>> World build started on Thu Nov 17 23:30:42 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Fri Nov 18 01:39:48 UTC 2011 TB --- 2011-11-18 01:39:48 - generating LINT kernel config TB --- 2011-11-18 01:39:48 - cd /src/sys/i386/conf TB --- 2011-11-18 01:39:48 - /usr/bin/make -B LINT TB --- 2011-11-18 01:39:48 - cd /src/sys/i386/conf TB --- 2011-11-18 01:39:48 - /usr/sbin/config -m LINT-NOINET TB --- 2011-11-18 01:39:48 - building LINT-NOINET kernel TB --- 2011-11-18 01:39:48 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 01:39:48 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 01:39:48 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 01:39:48 - SRCCONF=/dev/null TB --- 2011-11-18 01:39:48 - TARGET=i386 TB --- 2011-11-18 01:39:48 - TARGET_ARCH=i386 TB --- 2011-11-18 01:39:48 - TZ=UTC TB --- 2011-11-18 01:39:48 - __MAKE_CONF=/dev/null TB --- 2011-11-18 01:39:48 - cd /src TB --- 2011-11-18 01:39:48 - /usr/bin/make -B buildkernel KERNCONF=LINT-NOINET >>> Kernel build for LINT-NOINET started on Fri Nov 18 01:39:48 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ld -Bshareable -d -warn-common -o if_sf.ko if_sf.kld objcopy --strip-debug if_sf.ko ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/i386.i386/src/sys/LINT-NOINET/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/i386.i386/src/sys/LINT-NOINET -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/i386.i386/src/sys/LINT-NOINET/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -I/obj/i386.i386/src/sys/LINT-NOINET -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc1: warnings being treated as errors /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c: In function 'sfxge_dma_alloc': /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c:138: warning: large integer implicitly truncated to unsigned type [-Woverflow] *** Error code 1 Stop in /src/sys/modules/sfxge. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/i386.i386/src/sys/LINT-NOINET. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2011-11-18 02:05:52 - WARNING: /usr/bin/make returned exit code 1 TB --- 2011-11-18 02:05:52 - ERROR: failed to build LINT-NOINET kernel TB --- 2011-11-18 02:05:52 - 7506.80 user 1268.89 system 9351.55 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-i386.full ___
Re: Can't install FreeBSD-amd64-9.0-RC2: "/mnt: out of inodes"
On Thu, 17 Nov 2011, Olivier Cochard-Labbé wrote: Hi all, I tried to install FreeBSD-9.0-RC2-amd64-dvd1.iso (SHA256 verified) on a VM and meet a reproducible problem: The VM has 128Mo RAM and a 4Go hard drive. During install process I choose these distribution sets: ports and src only. And I'm using guided partitioning / Entire Disk / All Auto But each time (I delete and re-create a new VM multiple times) the installer failed during archive extraction of ports.txz (at about 88% progress of this file extraction) with this message: Error while extracting ports.txz: Can't create 'usr/ports/databases/p5-DBIx-Sunny/pkg-plist' And on the background there is this message: ...on /mnt: out of inodes Can someone else confirm this problem before I fill a PR ? A 4G disk is perhaps quite rare these days, but I expect that the issue is real. Please file the PR. The default block and fragment size for UFS/FFS were bumped by mckusick in r222319 (to general assent); presumably the installer should gain some logic to use smaller values for smaller disks, so that the available number of inodes is larger. (I presume that you have successfully installed earlier releases on 4G disk, of course. Though ... I think I may have, myself.) The ports tree has a very large number of small files, and is thus a very intensive user of inodes. Alas, my five minutes of searching were not enough to find where bsdinstall is actually generating default filesystem options, so I couldn't confirm this assumption. Thanks for the report, Ben Kaduk___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
[head tinderbox] failure on powerpc/powerpc
TB --- 2011-11-18 02:05:53 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-18 02:05:53 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2011-11-18 02:05:53 - cleaning the object tree TB --- 2011-11-18 02:06:04 - cvsupping the source tree TB --- 2011-11-18 02:06:04 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2011-11-18 02:06:17 - building world TB --- 2011-11-18 02:06:17 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 02:06:17 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 02:06:17 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 02:06:17 - SRCCONF=/dev/null TB --- 2011-11-18 02:06:17 - TARGET=powerpc TB --- 2011-11-18 02:06:17 - TARGET_ARCH=powerpc TB --- 2011-11-18 02:06:17 - TZ=UTC TB --- 2011-11-18 02:06:17 - __MAKE_CONF=/dev/null TB --- 2011-11-18 02:06:17 - cd /src TB --- 2011-11-18 02:06:17 - /usr/bin/make -B buildworld >>> World build started on Fri Nov 18 02:06:17 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Fri Nov 18 04:04:45 UTC 2011 TB --- 2011-11-18 04:04:45 - generating LINT kernel config TB --- 2011-11-18 04:04:45 - cd /src/sys/powerpc/conf TB --- 2011-11-18 04:04:45 - /usr/bin/make -B LINT TB --- 2011-11-18 04:04:45 - cd /src/sys/powerpc/conf TB --- 2011-11-18 04:04:45 - /usr/sbin/config -m GENERIC TB --- 2011-11-18 04:04:45 - building GENERIC kernel TB --- 2011-11-18 04:04:45 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 04:04:45 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 04:04:45 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 04:04:45 - SRCCONF=/dev/null TB --- 2011-11-18 04:04:45 - TARGET=powerpc TB --- 2011-11-18 04:04:45 - TARGET_ARCH=powerpc TB --- 2011-11-18 04:04:45 - TZ=UTC TB --- 2011-11-18 04:04:45 - __MAKE_CONF=/dev/null TB --- 2011-11-18 04:04:45 - cd /src TB --- 2011-11-18 04:04:45 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Fri Nov 18 04:04:45 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] ===> sfxge (all) cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc/src/sys/GENERIC -msoft-float -mno-altivec -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc/src/sys/GENERIC -msoft-float -mno-altivec -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_dma.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -DDEBUG=1 -mlongcall -fno-omit-frame-pointer -I/obj/powerpc.powerpc/src/sys/GENERIC -msoft-float -mno-altivec -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c /src/sys/modules/sfxge/../../dev/sfxge/sfxge_ev.c cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/powerpc.powerpc/src/sys/GENERIC/opt_global.h -I. -I@
[head tinderbox] failure on arm/arm
TB --- 2011-11-18 04:50:00 - tinderbox 2.8 running on freebsd-current.sentex.ca TB --- 2011-11-18 04:50:00 - starting HEAD tinderbox run for arm/arm TB --- 2011-11-18 04:50:00 - cleaning the object tree TB --- 2011-11-18 04:50:25 - cvsupping the source tree TB --- 2011-11-18 04:50:25 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/arm/arm/supfile TB --- 2011-11-18 04:50:41 - building world TB --- 2011-11-18 04:50:41 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 04:50:41 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 04:50:41 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 04:50:41 - SRCCONF=/dev/null TB --- 2011-11-18 04:50:41 - TARGET=arm TB --- 2011-11-18 04:50:41 - TARGET_ARCH=arm TB --- 2011-11-18 04:50:41 - TZ=UTC TB --- 2011-11-18 04:50:41 - __MAKE_CONF=/dev/null TB --- 2011-11-18 04:50:41 - cd /src TB --- 2011-11-18 04:50:41 - /usr/bin/make -B buildworld >>> World build started on Fri Nov 18 04:50:41 UTC 2011 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Fri Nov 18 05:44:30 UTC 2011 TB --- 2011-11-18 05:44:30 - cd /src/sys/arm/conf TB --- 2011-11-18 05:44:30 - /usr/sbin/config -m AVILA TB --- 2011-11-18 05:44:31 - building AVILA kernel TB --- 2011-11-18 05:44:31 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 05:44:31 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 05:44:31 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 05:44:31 - SRCCONF=/dev/null TB --- 2011-11-18 05:44:31 - TARGET=arm TB --- 2011-11-18 05:44:31 - TARGET_ARCH=arm TB --- 2011-11-18 05:44:31 - TZ=UTC TB --- 2011-11-18 05:44:31 - __MAKE_CONF=/dev/null TB --- 2011-11-18 05:44:31 - cd /src TB --- 2011-11-18 05:44:31 - /usr/bin/make -B buildkernel KERNCONF=AVILA >>> Kernel build for AVILA started on Fri Nov 18 05:44:31 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for AVILA completed on Fri Nov 18 05:47:34 UTC 2011 TB --- 2011-11-18 05:47:34 - cd /src/sys/arm/conf TB --- 2011-11-18 05:47:34 - /usr/sbin/config -m BWCT TB --- 2011-11-18 05:47:34 - building BWCT kernel TB --- 2011-11-18 05:47:34 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 05:47:34 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 05:47:34 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 05:47:34 - SRCCONF=/dev/null TB --- 2011-11-18 05:47:34 - TARGET=arm TB --- 2011-11-18 05:47:34 - TARGET_ARCH=arm TB --- 2011-11-18 05:47:34 - TZ=UTC TB --- 2011-11-18 05:47:34 - __MAKE_CONF=/dev/null TB --- 2011-11-18 05:47:34 - cd /src TB --- 2011-11-18 05:47:34 - /usr/bin/make -B buildkernel KERNCONF=BWCT >>> Kernel build for BWCT started on Fri Nov 18 05:47:34 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for BWCT completed on Fri Nov 18 05:49:40 UTC 2011 TB --- 2011-11-18 05:49:40 - cd /src/sys/arm/conf TB --- 2011-11-18 05:49:40 - /usr/sbin/config -m CAMBRIA TB --- 2011-11-18 05:49:41 - building CAMBRIA kernel TB --- 2011-11-18 05:49:41 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 05:49:41 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 05:49:41 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 05:49:41 - SRCCONF=/dev/null TB --- 2011-11-18 05:49:41 - TARGET=arm TB --- 2011-11-18 05:49:41 - TARGET_ARCH=arm TB --- 2011-11-18 05:49:41 - TZ=UTC TB --- 2011-11-18 05:49:41 - __MAKE_CONF=/dev/null TB --- 2011-11-18 05:49:41 - cd /src TB --- 2011-11-18 05:49:41 - /usr/bin/make -B buildkernel KERNCONF=CAMBRIA >>> Kernel build for CAMBRIA started on Fri Nov 18 05:49:41 UTC 2011 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for CAMBRIA completed on Fri Nov 18 05:52:37 UTC 2011 TB --- 2011-11-18 05:52:37 - cd /src/sys/arm/conf TB --- 2011-11-18 05:52:37 - /usr/sbin/config -m CNS11XXNAS TB --- 2011-11-18 05:52:37 - building CNS11XXNAS kernel TB --- 2011-11-18 05:52:37 - CROSS_BUILD_TESTING=YES TB --- 2011-11-18 05:52:37 - MAKEOBJDIRPREFIX=/obj TB --- 2011-11-18 05:52:37 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2011-11-18 05:52:37 - SRCCONF=/dev/null TB --- 2011-11-18 05:52:37 - TARGET=arm TB --- 2011-11-18 05:52:37 - TARGET_ARCH=arm TB --- 2011-11-18 05:52:37 - TZ=UTC TB --- 2011-11-18 05:52:37 - __MAKE_CONF=/dev/null TB --- 2011-11-18 0
Re: Can't install FreeBSD-amd64-9.0-RC2: "/mnt: out of inodes"
2011/11/17 Benjamin Kaduk : > On Thu, 17 Nov 2011, Olivier Cochard-Labbé wrote: > >> Hi all, >> >> I tried to install FreeBSD-9.0-RC2-amd64-dvd1.iso (SHA256 verified) on >> a VM and meet a reproducible problem: >> The VM has 128Mo RAM and a 4Go hard drive. >> >> During install process I choose these distribution sets: ports and src >> only. >> And I'm using guided partitioning / Entire Disk / All Auto >> >> But each time (I delete and re-create a new VM multiple times) the >> installer failed during archive extraction of ports.txz (at about 88% >> progress of this file extraction) with this message: >> >> Error while extracting ports.txz: >> Can't create >> 'usr/ports/databases/p5-DBIx-Sunny/pkg-plist' >> >> And on the background there is this message: >> ...on /mnt: out of inodes >> >> Can someone else confirm this problem before I fill a PR ? > > A 4G disk is perhaps quite rare these days, but I expect that the issue is > real. Please file the PR. > > The default block and fragment size for UFS/FFS were bumped by mckusick in > r222319 (to general assent); presumably the installer should gain some logic > to use smaller values for smaller disks, so that the available number of > inodes is larger. (I presume that you have successfully installed earlier > releases on 4G disk, of course. Though ... I think I may have, myself.) > The ports tree has a very large number of small files, and is thus a very > intensive user of inodes. > > > Alas, my five minutes of searching were not enough to find where bsdinstall > is actually generating default filesystem options, so I couldn't confirm > this assumption. Look for newfs_command in gpart_ops.c . -Garrett ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: [PATCH] Detect GNU/kFreeBSD in user-visible kernel headers
2011/11/17 John Baldwin : > Hmm, I wonder if it's better to use the #ifndef approach rather than #undef > so that when compilers are updated to DTRT we will honor their settings? Well, the compiler is supposed to know better than sys/param.h, because it inherited this number from the runtime kernel when it was built. However, __FreeBSD__ comes from the compiler already so if you "#define __FreeBSD_kernel__ __FreeBSD__" you get the information from the compiler anyway. As both approaches do the same thing, I really don't mind either way. ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"