On 30-May-01 Doug Barton wrote:
> John Baldwin wrote:
>>
>> On 28-May-01 Doug Barton wrote:
>> > Gang,
>> >
>> > On the avi front, typing 'aviplay' with or without an argument is
>> > guaranteed to instantly wedge the box. I attached a lot of running aviplay
>> > through truss, but I have no way to know if it stopped at or before the
>> > offending instruction. As for the general wonkiness of the system, I have
>> > finally gotten a dump. The backtrace is below, let me know if there is
>> > anything else I can do to help debug.
>>
>> Please try http://www.FreeBSD.org/~jhb/patches/ldt.patch.
>
> This worked excellently for me! I patched the kernel and rebuilt, then
> tested aviplay... success. Then I cvsup'ed, built/installed world and
> kernel, and started stress testing. I'm currently running two builds of X
> 4, one over NFS and one local, 'make cleandir' in /usr/src, AND avifile
> (ok, it's a little choppy, but still runs). I'd say it's probably safe to
> go back in the water again. Next stop, re-enabling softupdates. :)
Sounds good, I'll commit it in a second.
> BTW, I'm probably wrong about this but looking at the patch it seems odd
> to me that one of these is ifndef and the other is ifdef:
>
> @@ -422,15 +433,21 @@
> kmem_free(kernel_map, (vm_offset_t)old_ldt_base,
> old_ldt_len * sizeof(union descriptor));
> FREE(new_ldt, M_SUBPROC);
> +#ifndef SMP
> + mtx_lock_spin(&sched_lock);
> +#endif
> } else {
> pcb->pcb_ldt = pcb_ldt = new_ldt;
> +#ifdef SMP
> mtx_unlock_spin(&sched_lock);
> +#endif
> }
>
> Just curious,
We won't to continue to hold the sched_lock before calling set_user_ldt in the
!SMP case, but we want to release it in the SMP case before calling the smp
rendezvous. We have to release the sched_lock in the then clause before
calling kmem_free, so each clause finishes with the sched_lock in a different
state.
--
John Baldwin <[EMAIL PROTECTED]> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message