Re: Stop scheduler on panic

2011-11-17 Thread Kostik Belousov
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

2011-11-17 Thread Andriy Gapon
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

2011-11-17 Thread Alexander Motin
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

2011-11-17 Thread Stefan Esser
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

2011-11-17 Thread Kostik Belousov
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread Alexander Motin
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

2011-11-17 Thread Andriy Gapon
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread Kostik Belousov
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

2011-11-17 Thread Matteo Landi
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread Alexander Motin
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread Dan The Man



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

2011-11-17 Thread FreeBSD Tinderbox
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"

2011-11-17 Thread Olivier Cochard-Labbé
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

2011-11-17 Thread Ryan Stone
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

2011-11-17 Thread John Baldwin
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

2011-11-17 Thread John Baldwin
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread Alexander Motin
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread John Baldwin
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

2011-11-17 Thread Maksim Yevmenkin
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

2011-11-17 Thread John Baldwin
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

2011-11-17 Thread Andriy Gapon
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

2011-11-17 Thread Alexander Motin
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

2011-11-17 Thread Nima Misaghian
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

2011-11-17 Thread Andrew Boyer

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

2011-11-17 Thread Maksim Yevmenkin
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

2011-11-17 Thread Alexander Motin
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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...

2011-11-17 Thread Ken Smith

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

2011-11-17 Thread Maksim Yevmenkin
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

2011-11-17 Thread Kostik Belousov
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

2011-11-17 Thread Chuck Swiger
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

2011-11-17 Thread Davide Italiano
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 Thread Robert Millan
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

2011-11-17 Thread John Baldwin
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

2011-11-17 Thread 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.

-- 
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?

2011-11-17 Thread Vladislav V. Prodan
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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 Thread Attilio Rao
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

2011-11-17 Thread mdf
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 Thread Attilio Rao
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

2011-11-17 Thread Andriy Gapon
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

2011-11-17 Thread mdf
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?

2011-11-17 Thread Garrett Cooper
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

2011-11-17 Thread Garrett Cooper
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

2011-11-17 Thread John Baldwin
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

2011-11-17 Thread John Baldwin
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

2011-11-17 Thread John Baldwin
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

2011-11-17 Thread FreeBSD Tinderbox
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?

2011-11-17 Thread Vladislav V. Prodan
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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?

2011-11-17 Thread Garrett Cooper
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

2011-11-17 Thread Julian H. Stacey
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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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"

2011-11-17 Thread 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.


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

2011-11-17 Thread FreeBSD Tinderbox
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

2011-11-17 Thread FreeBSD Tinderbox
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 Thread Garrett Cooper
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 Thread Robert Millan
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"