cvs commit: src/sys/conf options.i386 options.pc98 src/sys/i386/i386 mp_machdep.c pmap.c swtch.s src/sys/i386/isa apic_vector.s src/sys/kern kern_synch.c subr_witness.c

Andrea Campi andrea at webcom.it
Wed Jul 16 05:26:00 PDT 2003


On Tue, Jul 15, 2003 at 05:15:30PM -0700, Peter Wemm wrote:
> To get you out of a jam, you can try this (beware, xterm cut/paste
> tab spammage, but it should point you where to disable the test):
> 
> RCS file: /home/ncvs/src/sys/i386/i386/swtch.s,v
> retrieving revision 1.142
> diff -u -r1.142 swtch.s
> --- swtch.s     10 Jul 2003 01:02:59 -0000      1.142
> +++ swtch.s     16 Jul 2003 00:08:10 -0000
> @@ -161,12 +161,14 @@
>

You got yourself a winner here, this one works (while the one below doesn't).
 
> However, There has also been an ACPI update.  I wonder if that might be
> the cause instead?

I'm sure. My tests were:

cvsup *default release=cvs tag=. date=2003.07.10.02.00.00, doesn't work
cvsup *default release=cvs tag=. date=2003.07.10.01.00.00, works

diffs between the two are:

Connected to cvsup5.de.freebsd.org
Updating collection src-all/cvs
 Edit src/sys/conf/options.i386
 Edit src/sys/conf/options.pc98
 Edit src/sys/i386/i386/mp_machdep.c
 Edit src/sys/i386/i386/pmap.c
 Edit src/sys/i386/i386/swtch.s
 Edit src/sys/i386/isa/apic_vector.s
 Edit src/sys/kern/kern_synch.c
 Edit src/sys/kern/subr_witness.c
Finished successfully

Which is exactly that single commit.

I also tried using sources before the commit with LAZY_SWITCH in my kernel
config, and it fails in the same way. So in fact the commit isn't the culprit
per se, it just made breakage the default. ;-)


> 
> As a shot in the dark, you might like to try something like this too:
> 
> RCS file: /home/ncvs/src/sys/i386/acpica/acpi_wakeup.c,v
> retrieving revision 1.21
> diff -u -r1.21 acpi_wakeup.c
> --- acpi_wakeup.c       1 Jul 2003 15:52:03 -0000       1.21
> +++ acpi_wakeup.c       16 Jul 2003 00:14:21 -0000
> @@ -296,6 +296,8 @@
>                 pm->pm_pteobj = NULL;
>         }
>  
> +       load_cr3(rcr3());
> +
>         write_eflags(ef);
>  
>         return (ret);
> 

Couldn't that be spelled invltlb()? Anyway, this doesn't work. Should I
post this issue on acpi-jp@ and see whether Nate or somebody else has any
idea? On the other hand, I don't think anybody (except maybe John) is in
a better position to understand this than you, so... *shrug* if you have
any idea, fine, otherwise for now I will go back to shutting down the
laptop.

Bye,
	Andrea

-- 
              The best things in life are free, but the
                expensive ones are still worth a look.


More information about the cvs-all mailing list