Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-03-01 Thread John Baldwin
On 3/1/19 5:03 AM, Rodney W. Grimes wrote:
>> On 2/28/19 10:32 AM, Steve Kargl wrote:
> ( ... trimmed ... )
> 
>>> The BIOS does have a enable/disable button for virtualization.
>>> During the great drm-legacy-kmod event of the last month, enabling
>>> virtualization locks up a i386 FreeBSD kernel very quickly.
>>> Perhaps, virtualization works under amd64.  Guess I'll burn
>>> an image onto a memstick an d give it a whirl.
>>
>> bhyve is definitely amd64-only.  We don't have any support for bhyve on i386
>> kernels and likely never will.  However, if an i386 chroot works, it's 
>> probably
>> faster than an i386 VM anyway.
> 
> bhyve/vmm.ko does not come into play here at all, the real question
> is why does our i386 kernel "lock up" simply because a newer CPU
> feature appears, it should not do that, as far as I am aware turing
> VT-x on does not or should not in anyway change the "i386" behavior
> or a machine.   What am I missing?

I think we don't know enough about this bug report to know what causes
the hang.

 However, an amd64 kernel is going to be a more stable, better
 supported kernel for running i386 binaries than an i386 kernel
 at this point, and that will become even more true in the future.
>>>
>>> This is interesting as well.  Does this mean that amd64 is now 
>>> the only tier 1 platform and all other architectures are after
>>> thoughts?
>>
>> i386 is still marked as tier 1.  However, it's becoming increasingly harder 
>> to
>> maintain that level of support for the kernel.  core@ is currently exploring
>> some ideas about how to make our tiering for i386 more closely reflect what 
>> we
>> as a project are able to provide.  Originally we were considering a proposal 
>> to
>> demote all of i386 to tier 2, but after some initial conversations we think a
>> better model is to keep the i386 user ABI as tier 1 and only demote the i386
>> kernel.  However, we still need to think about what that looks like and 
>> update
>> our tiering language to reflect what that looks like.  I think the short 
>> version
>> is that we might no longer guarantee i386-specific fixes for kernel SAs, but
>> there are probably additional wrinkles that will arise as that is fleshed out
>> further.
> 
> Is core talking to the stake holders about this issue?  IMHO this topic
> should be an open discussion some place with all parties involved, not
> just core deciding what is or is not a tier 1 and/or how to fix our
> tier 1 situation with i386 (which I do agree needs to change, but
> to what I have not a solid idea.)

As you are well aware, core@ has talked to some stakeholders already
(including you) which has already resulted in some changes to what core@
is considering to propose to developers.  However, it is ultimately
core@ who makes tiering decisions.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-03-01 Thread Ed Maste
On Thu, 28 Feb 2019 at 14:13, Ian Lepore  wrote:
>
> I have been of the opinion that armv[67] has met all the bullet points
> to be a tier-1 arch for several years, but nobody seemed interested in
> declaring it so.  Now it'll never happen, because there seems to be
> growing momentum to throw everything 32-bit under the bus and declare
> freebsd to be a 64-bit-only OS.  Netflix wins; those of us building
> smaller embedded products will eventually be forced to move to linux.

I don't think this is the case. For one example, see the effort kib@
has been putting in (under Foundation sponsorship) on FreeBSD/i386.
One of my co-op students this term is working on building out our
hardware continuous integration testbed, including 32-bit Arm targets
like the BeagleBone Black.

Now, i386 has not been our primary reference platform for some time,
and I expect that for 32-bit ports FreeBSD will largely be cross-built
from amd64, arm64, or powerpc64 hosts. I think this is absolutely
fine, and we can still support 32-bit devices well, but our current
tier definitions don't fit this model well.
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-03-01 Thread Rodney W. Grimes
> On Thu, Feb 28, 2019 at 12:46 PM John Baldwin  wrote:
> 
> > On 2/28/19 11:14 AM, Cy Schubert wrote:
> > > On February 28, 2019 11:06:46 AM PST, Conrad Meyer 
> > wrote:
> > >> On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
> > >>  wrote:
> > >>> This is interesting as well.  Does this mean that amd64 is now
> > >>> the only tier 1 platform and all other architectures are after
> > >>> thoughts?
> > >>
> > >> This has been the de facto truth for years.  i386 is mostly only
> > >> supported by virtue of sharing code with amd64.  There are efforts to
> > >> promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
> > >> another good alternative Tier 1 candidate eventually.  None have
> > >> anything like the developer popularity that amd64 enjoys.
> > >>
> > >> Conrad
> > >> ___
> > >> freebsd-current@freebsd.org mailing list
> > >> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> > >> To unsubscribe, send any mail to
> > >> "freebsd-current-unsubscr...@freebsd.org"
> > >
> > > We deprecated and removed support for 386 and 486 processors. We should
> > consider removing support for low end Pentium as well. I'm specifically
> > thinking of removing the workarounds like F00F. Are there any processors
> > that are still vulnerable to this?
> >
> > We have only removed support for 386 since it didn't support cmpxchg.  We
> > still
> > nominally support 486s.  I don't know how well FreeBSD 13 would run on a
> > 486, but
> > in theory the code is still there and the binaries shouldn't die with
> > illegal
> > instruction faults.
> >
> 
> The biggest barrier to running on a real 486 is that it's hard for FreeBSD
> to fit into 32MB that was the maximum config you could have. You can barely
> boot it w/o tuning, though it will still fit a few jobs if you are looking
> at something super low-end with a lot of effort.

Effort that has been completed in several places, wifi-build for one,
where I did boot a 12.0 image of 8MB in size running in 32MB iirc on
a D-Link DIR-855? router.

> There are a few later CPUs built on basically a 486 whose chipsets could
> support up to 128MB or 256MB which is enough to run FreeBSD still.

Amd Geode would be in that group?

-- 
Rod Grimes rgri...@freebsd.org
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-03-01 Thread Rodney W. Grimes
> On 2/28/19 11:14 AM, Cy Schubert wrote:
> > On February 28, 2019 11:06:46 AM PST, Conrad Meyer  wrote:
> >> On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
> >>  wrote:
> >>> This is interesting as well.  Does this mean that amd64 is now
> >>> the only tier 1 platform and all other architectures are after
> >>> thoughts?
> >>
> >> This has been the de facto truth for years.  i386 is mostly only
> >> supported by virtue of sharing code with amd64.  There are efforts to
> >> promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
> >> another good alternative Tier 1 candidate eventually.  None have
> >> anything like the developer popularity that amd64 enjoys.
> >>
> >> Conrad
> >> ___
> >> freebsd-current@freebsd.org mailing list
> >> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> >> To unsubscribe, send any mail to
> >> "freebsd-current-unsubscr...@freebsd.org"
> > 
> > We deprecated and removed support for 386 and 486 processors. We should 
> > consider removing support for low end Pentium as well. I'm specifically 
> > thinking of removing the workarounds like F00F. Are there any processors 
> > that are still vulnerable to this?
> 
> We have only removed support for 386 since it didn't support cmpxchg.  We 
> still
> nominally support 486s.  I don't know how well FreeBSD 13 would run on a 486, 
> but
> in theory the code is still there and the binaries shouldn't die with illegal
> instruction faults.

I know I can still boot FreeBSD 12, diskless no less, on a 
Transmeta Crusoe TM-5800.  I'll go digging for a 486 and
confirm or deny if we can boot ^head on it.

-- 
Rod Grimes rgri...@freebsd.org
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-03-01 Thread Rodney W. Grimes
> On 2/28/19 10:32 AM, Steve Kargl wrote:
( ... trimmed ... )

> > The BIOS does have a enable/disable button for virtualization.
> > During the great drm-legacy-kmod event of the last month, enabling
> > virtualization locks up a i386 FreeBSD kernel very quickly.
> > Perhaps, virtualization works under amd64.  Guess I'll burn
> > an image onto a memstick an d give it a whirl.
> 
> bhyve is definitely amd64-only.  We don't have any support for bhyve on i386
> kernels and likely never will.  However, if an i386 chroot works, it's 
> probably
> faster than an i386 VM anyway.

bhyve/vmm.ko does not come into play here at all, the real question
is why does our i386 kernel "lock up" simply because a newer CPU
feature appears, it should not do that, as far as I am aware turing
VT-x on does not or should not in anyway change the "i386" behavior
or a machine.   What am I missing?

> >> However, an amd64 kernel is going to be a more stable, better
> >> supported kernel for running i386 binaries than an i386 kernel
> >> at this point, and that will become even more true in the future.
> > 
> > This is interesting as well.  Does this mean that amd64 is now 
> > the only tier 1 platform and all other architectures are after
> > thoughts?
> 
> i386 is still marked as tier 1.  However, it's becoming increasingly harder to
> maintain that level of support for the kernel.  core@ is currently exploring
> some ideas about how to make our tiering for i386 more closely reflect what we
> as a project are able to provide.  Originally we were considering a proposal 
> to
> demote all of i386 to tier 2, but after some initial conversations we think a
> better model is to keep the i386 user ABI as tier 1 and only demote the i386
> kernel.  However, we still need to think about what that looks like and update
> our tiering language to reflect what that looks like.  I think the short 
> version
> is that we might no longer guarantee i386-specific fixes for kernel SAs, but
> there are probably additional wrinkles that will arise as that is fleshed out
> further.

Is core talking to the stake holders about this issue?  IMHO this topic
should be an open discussion some place with all parties involved, not
just core deciding what is or is not a tier 1 and/or how to fix our
tier 1 situation with i386 (which I do agree needs to change, but
to what I have not a solid idea.)

-- 
Rod Grimes rgri...@freebsd.org
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread John Baldwin
On 2/28/19 11:24 AM, Cy Schubert wrote:
> On February 28, 2019 11:21:24 AM PST, Steve Kargl 
>  wrote:
>> On Thu, Feb 28, 2019 at 11:14:51AM -0800, Cy Schubert wrote:
>>> On February 28, 2019 11:06:46 AM PST, Conrad Meyer 
>> wrote:
 On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
  wrote:
> This is interesting as well.  Does this mean that amd64 is now
> the only tier 1 platform and all other architectures are after
> thoughts?

 This has been the de facto truth for years.  i386 is mostly only
 supported by virtue of sharing code with amd64.  There are efforts
>> to
 promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
 another good alternative Tier 1 candidate eventually.  None have
 anything like the developer popularity that amd64 enjoys.

>>>
>>> We deprecated and removed support for 386 and 486 processors. We
>> should consider removing support for low end Pentium as well. I'm
>> specifically thinking of removing the workarounds like F00F. Are there
>> any processors that are still vulnerable to this?
>>>
>>
>> Ahem, sys/i386/conf/GENERIC contains "cpu I486_CPU".
>> Is that a typo?
> 
> I stand corrected. We should remove that.

No, it doesn't need removing per my other mail.  While there is some cruft in a
few files for older CPUs (mostly just initcpu.c and identcpu.c) it is quite
small and in code that doesn't change.  To effect any type of substantial "win"
in reducing code complexity for i386, you'd have to do something like require 
PAE
(so that the kernel could assume PAE instead of a bunch of runtime checks as it
does now).   That would also give you working 64-bit atomics on i386.  However,
removing I486_CPU alone doesn't buy you anything.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread Cy Schubert
On February 28, 2019 11:21:24 AM PST, Steve Kargl 
 wrote:
>On Thu, Feb 28, 2019 at 11:14:51AM -0800, Cy Schubert wrote:
>> On February 28, 2019 11:06:46 AM PST, Conrad Meyer 
>wrote:
>> >On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
>> > wrote:
>> >> This is interesting as well.  Does this mean that amd64 is now
>> >> the only tier 1 platform and all other architectures are after
>> >> thoughts?
>> >
>> >This has been the de facto truth for years.  i386 is mostly only
>> >supported by virtue of sharing code with amd64.  There are efforts
>to
>> >promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
>> >another good alternative Tier 1 candidate eventually.  None have
>> >anything like the developer popularity that amd64 enjoys.
>> >
>> 
>> We deprecated and removed support for 386 and 486 processors. We
>should consider removing support for low end Pentium as well. I'm
>specifically thinking of removing the workarounds like F00F. Are there
>any processors that are still vulnerable to this?
>> 
>
>Ahem, sys/i386/conf/GENERIC contains "cpu I486_CPU".
>Is that a typo?

I stand corrected. We should remove that.

-- 
Pardon the typos and autocorrect, small keyboard in use.
Cheers,
Cy Schubert 
FreeBSD UNIX:  Web: http://www.FreeBSD.org

The need of the many outweighs the greed of the few.
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread Warner Losh
On Thu, Feb 28, 2019 at 12:14 PM Ian Lepore  wrote:

> On Thu, 2019-02-28 at 11:06 -0800, Conrad Meyer wrote:
> > On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
> >  wrote:
> > > This is interesting as well.  Does this mean that amd64 is now
> > > the only tier 1 platform and all other architectures are after
> > > thoughts?
> >
> > This has been the de facto truth for years.  i386 is mostly only
> > supported by virtue of sharing code with amd64.  There are efforts to
> > promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
> > another good alternative Tier 1 candidate eventually.  None have
> > anything like the developer popularity that amd64 enjoys.
> >
> >
>
> I have been of the opinion that armv[67] has met all the bullet points
> to be a tier-1 arch for several years, but nobody seemed interested in
> declaring it so.


I concur that armv[67] is the closest thing we have to a second tier 1.
arm64 is also quite good, but still has a few more rough edges compared to
armv[67].


> Now it'll never happen, because there seems to be
> growing momentum to throw everything 32-bit under the bus and declare
> freebsd to be a 64-bit-only OS.  Netflix wins; those of us building
> smaller embedded products will eventually be forced to move to linux.
>

While there's been some talk, there's too many relevant 32-bit arm chips to
toss it out in 13 (planned in 2ish years or 2021) and no i386 in 13 likely
would be a stretch as well, so 13 almost certainly will have 32-bit kernels
and userland support (though that will require the 32-bit processors
support 64-bit atomics to reduce friction).

Who know if that will be the case in 4 or 5 years when 14 is branched (so
~2025). Current trends suggest that 32-bits might not be relevant then, but
we certainly can't say that for sure today.

Warner
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread Warner Losh
On Thu, Feb 28, 2019 at 12:46 PM John Baldwin  wrote:

> On 2/28/19 11:14 AM, Cy Schubert wrote:
> > On February 28, 2019 11:06:46 AM PST, Conrad Meyer 
> wrote:
> >> On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
> >>  wrote:
> >>> This is interesting as well.  Does this mean that amd64 is now
> >>> the only tier 1 platform and all other architectures are after
> >>> thoughts?
> >>
> >> This has been the de facto truth for years.  i386 is mostly only
> >> supported by virtue of sharing code with amd64.  There are efforts to
> >> promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
> >> another good alternative Tier 1 candidate eventually.  None have
> >> anything like the developer popularity that amd64 enjoys.
> >>
> >> Conrad
> >> ___
> >> freebsd-current@freebsd.org mailing list
> >> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> >> To unsubscribe, send any mail to
> >> "freebsd-current-unsubscr...@freebsd.org"
> >
> > We deprecated and removed support for 386 and 486 processors. We should
> consider removing support for low end Pentium as well. I'm specifically
> thinking of removing the workarounds like F00F. Are there any processors
> that are still vulnerable to this?
>
> We have only removed support for 386 since it didn't support cmpxchg.  We
> still
> nominally support 486s.  I don't know how well FreeBSD 13 would run on a
> 486, but
> in theory the code is still there and the binaries shouldn't die with
> illegal
> instruction faults.
>

The biggest barrier to running on a real 486 is that it's hard for FreeBSD
to fit into 32MB that was the maximum config you could have. You can barely
boot it w/o tuning, though it will still fit a few jobs if you are looking
at something super low-end with a lot of effort.

There are a few later CPUs built on basically a 486 whose chipsets could
support up to 128MB or 256MB which is enough to run FreeBSD still.

Warner
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread John Baldwin
On 2/28/19 11:14 AM, Cy Schubert wrote:
> On February 28, 2019 11:06:46 AM PST, Conrad Meyer  wrote:
>> On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
>>  wrote:
>>> This is interesting as well.  Does this mean that amd64 is now
>>> the only tier 1 platform and all other architectures are after
>>> thoughts?
>>
>> This has been the de facto truth for years.  i386 is mostly only
>> supported by virtue of sharing code with amd64.  There are efforts to
>> promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
>> another good alternative Tier 1 candidate eventually.  None have
>> anything like the developer popularity that amd64 enjoys.
>>
>> Conrad
>> ___
>> freebsd-current@freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to
>> "freebsd-current-unsubscr...@freebsd.org"
> 
> We deprecated and removed support for 386 and 486 processors. We should 
> consider removing support for low end Pentium as well. I'm specifically 
> thinking of removing the workarounds like F00F. Are there any processors that 
> are still vulnerable to this?

We have only removed support for 386 since it didn't support cmpxchg.  We still
nominally support 486s.  I don't know how well FreeBSD 13 would run on a 486, 
but
in theory the code is still there and the binaries shouldn't die with illegal
instruction faults.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread John Baldwin
On 2/28/19 10:32 AM, Steve Kargl wrote:
> On Thu, Feb 28, 2019 at 09:09:38AM -0800, John Baldwin wrote:
>> You can do all your tests directly on amd64 by just adding
>> "-m32" to compile i386 binaries against the libraries in /usr/lib32
>> and you will generate the same i386 binaries as if you were building
>> on an i386 system.  If you are a bit more paranoid, you can install
>> an i386 world and chroot into it and use that to test i386.  I do this
>> myself (-m32) for testing i386 things.  I also run i386 VMs under
>> bhyve on amd64 hosts.  I'm not sure your laptop's CPU can run i386
>> VMs though, and you don't need a VM to test userland-only changes
>> (I'm usually trying to test kernel changes).
> 
> Interesting.  Did not know I could use -m32 with any reliability.
> Setting up my testing environment may be a challenge as I use
> mpfr/gmp, so would need -m32 aware versions of those libraries.
> I normally install whatever the port collection offers for mpfr/gmp.
> I suppose I would need to install those independently to get
> multilib support.  I would also need to compile 2 versions of my
> testing framework (ie., additional support library).

-m32 didn't used to work in early amd64 (like 6.x or maybe 7.x), but it has 
worked
reliably for several branches now.  That said, if you want to use i386 
packages, I
think a chroot is probably a safer route as in the chroot you can use pkg to 
install
i386 packages just as if it was an i386 machine.

> The BIOS does have a enable/disable button for virtualization.
> During the great drm-legacy-kmod event of the last month, enabling
> virtualization locks up a i386 FreeBSD kernel very quickly.
> Perhaps, virtualization works under amd64.  Guess I'll burn
> an image onto a memstick an d give it a whirl.

bhyve is definitely amd64-only.  We don't have any support for bhyve on i386
kernels and likely never will.  However, if an i386 chroot works, it's probably
faster than an i386 VM anyway.

>> However, an amd64 kernel is going to be a more stable, better
>> supported kernel for running i386 binaries than an i386 kernel
>> at this point, and that will become even more true in the future.
> 
> This is interesting as well.  Does this mean that amd64 is now 
> the only tier 1 platform and all other architectures are after
> thoughts?

i386 is still marked as tier 1.  However, it's becoming increasingly harder to
maintain that level of support for the kernel.  core@ is currently exploring
some ideas about how to make our tiering for i386 more closely reflect what we
as a project are able to provide.  Originally we were considering a proposal to
demote all of i386 to tier 2, but after some initial conversations we think a
better model is to keep the i386 user ABI as tier 1 and only demote the i386
kernel.  However, we still need to think about what that looks like and update
our tiering language to reflect what that looks like.  I think the short version
is that we might no longer guarantee i386-specific fixes for kernel SAs, but
there are probably additional wrinkles that will arise as that is fleshed out
further.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread Steve Kargl
On Thu, Feb 28, 2019 at 11:14:51AM -0800, Cy Schubert wrote:
> On February 28, 2019 11:06:46 AM PST, Conrad Meyer  wrote:
> >On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
> > wrote:
> >> This is interesting as well.  Does this mean that amd64 is now
> >> the only tier 1 platform and all other architectures are after
> >> thoughts?
> >
> >This has been the de facto truth for years.  i386 is mostly only
> >supported by virtue of sharing code with amd64.  There are efforts to
> >promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
> >another good alternative Tier 1 candidate eventually.  None have
> >anything like the developer popularity that amd64 enjoys.
> >
> 
> We deprecated and removed support for 386 and 486 processors. We should 
> consider removing support for low end Pentium as well. I'm specifically 
> thinking of removing the workarounds like F00F. Are there any processors that 
> are still vulnerable to this?
> 

Ahem, sys/i386/conf/GENERIC contains "cpu I486_CPU".
Is that a typo?

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread Cy Schubert
On February 28, 2019 11:06:46 AM PST, Conrad Meyer  wrote:
>On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
> wrote:
>> This is interesting as well.  Does this mean that amd64 is now
>> the only tier 1 platform and all other architectures are after
>> thoughts?
>
>This has been the de facto truth for years.  i386 is mostly only
>supported by virtue of sharing code with amd64.  There are efforts to
>promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
>another good alternative Tier 1 candidate eventually.  None have
>anything like the developer popularity that amd64 enjoys.
>
>Conrad
>___
>freebsd-current@freebsd.org mailing list
>https://lists.freebsd.org/mailman/listinfo/freebsd-current
>To unsubscribe, send any mail to
>"freebsd-current-unsubscr...@freebsd.org"

We deprecated and removed support for 386 and 486 processors. We should 
consider removing support for low end Pentium as well. I'm specifically 
thinking of removing the workarounds like F00F. Are there any processors that 
are still vulnerable to this?

-- 
Pardon the typos and autocorrect, small keyboard in use.
Cheers,
Cy Schubert 
FreeBSD UNIX:  Web: http://www.FreeBSD.org

The need of the many outweighs the greed of the few.
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread Ian Lepore
On Thu, 2019-02-28 at 11:06 -0800, Conrad Meyer wrote:
> On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
>  wrote:
> > This is interesting as well.  Does this mean that amd64 is now
> > the only tier 1 platform and all other architectures are after
> > thoughts?
> 
> This has been the de facto truth for years.  i386 is mostly only
> supported by virtue of sharing code with amd64.  There are efforts to
> promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
> another good alternative Tier 1 candidate eventually.  None have
> anything like the developer popularity that amd64 enjoys.
> 
> 

I have been of the opinion that armv[67] has met all the bullet points
to be a tier-1 arch for several years, but nobody seemed interested in
declaring it so.  Now it'll never happen, because there seems to be
growing momentum to throw everything 32-bit under the bus and declare
freebsd to be a 64-bit-only OS.  Netflix wins; those of us building
smaller embedded products will eventually be forced to move to linux.

-- Ian

___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread Conrad Meyer
On Thu, Feb 28, 2019 at 10:32 AM Steve Kargl
 wrote:
> This is interesting as well.  Does this mean that amd64 is now
> the only tier 1 platform and all other architectures are after
> thoughts?

This has been the de facto truth for years.  i386 is mostly only
supported by virtue of sharing code with amd64.  There are efforts to
promote arm64 to Tier 1, but it isn't there yet.  Power8+ might be
another good alternative Tier 1 candidate eventually.  None have
anything like the developer popularity that amd64 enjoys.

Conrad
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread Steve Kargl
On Thu, Feb 28, 2019 at 09:09:38AM -0800, John Baldwin wrote:
> On 2/23/19 8:39 AM, Steve Kargl wrote:
> > On Sat, Feb 23, 2019 at 08:32:23AM -0800, Conrad Meyer wrote:
> >> On Sat, Feb 23, 2019 at 12:44 AM Steve Kargl
> >>  wrote:
> >>> Ideas?
> >>> ...
> >>> +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 
> >>> 686-class CPU)
> >>>Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13
> >>
> >> https://ark.intel.com/content/www/us/en/ark/products/31728/intel-core-2-duo-processor-t7250-2m-cache-2-00-ghz-800-mhz-fsb.html
> >>
> >>> Intel® Virtualization Technology (VT-x) ‡  Yes
> >>> Intel® 64 ‡   Yes
> >>
> >>> Merom is the first Intel mobile processor to feature Intel 64 
> >>> architecture.
> >>
> >> So, as a workaround, maybe run amd64?
> > 
> > This is the only i386 FreeBSD system that I have.  This
> > is the system where all the libm changes I've made have
> > been tested.  i386 floating point is different than 
> > amd64 floating point.  See npx.c and the history of any
> > of the long double functions that I've worked on.  If
> > this laptop does not run i386, there will be no testing
> > of libm changes on the architecture.
> 
> Yes, but we set the initial FPU control word for 32-bit binaries
> to match i386 when running i386 binaries under an amd64 kernel.
> 
> See these comments in sys/x86/include/fpu.h with which you are
> likely familiar:
> 
> /*
>  * The hardware default control word for i387's and later coprocessors is
>  * 0x37F, giving:
>  *
>  *round to nearest
>  *64-bit precision
>  *all exceptions masked.
>  *
>  * FreeBSD/i386 uses 53 bit precision for things like fadd/fsub/fsqrt etc
>  * because of the difference between memory and fpu register stack arguments.
>  * If its using an intermediate fpu register, it has 80/64 bits to work
>  * with.  If it uses memory, it has 64/53 bits to work with.  However,
>  * gcc is aware of this and goes to a fair bit of trouble to make the
>  * best use of it.
>  *
>  * This is mostly academic for AMD64, because the ABI prefers the use
>  * SSE2 based math.  For FreeBSD/amd64, we go with the default settings.
>  */
> #define   __INITIAL_FPUCW__   0x037F
> #define   __INITIAL_FPUCW_I386__  0x127F
> #define   __INITIAL_NPXCW__   __INITIAL_FPUCW_I386__
> #define   __INITIAL_MXCSR__   0x1F80
> #define   __INITIAL_MXCSR_MASK__  0xFFBF
> 
> And this code in ia32_setregs() in sys/amd64/ia32/ia32_signal.c
> to set the initial register values for i386 processes:
> 
> /*
>  * Clear registers on exec
>  */
> void
> ia32_setregs(struct thread *td, struct image_params *imgp, u_long stack)
> {
> ...
>   pcb->pcb_initial_fpucw = __INITIAL_FPUCW_I386__;
> ...
> }
> 
> This matches what exec_setregs() in sys/i386/i386/machdep.c does:
> 
> /*
>  * Reset registers to default values on exec.
>  */
> void
> exec_setregs(struct thread *td, struct image_params *imgp, u_long stack)
> {
> ...
>   pcb->pcb_initial_npxcw = __INITIAL_NPXCW__;
> ...
> }
> 
> You can do all your tests directly on amd64 by just adding
> "-m32" to compile i386 binaries against the libraries in /usr/lib32
> and you will generate the same i386 binaries as if you were building
> on an i386 system.  If you are a bit more paranoid, you can install
> an i386 world and chroot into it and use that to test i386.  I do this
> myself (-m32) for testing i386 things.  I also run i386 VMs under
> bhyve on amd64 hosts.  I'm not sure your laptop's CPU can run i386
> VMs though, and you don't need a VM to test userland-only changes
> (I'm usually trying to test kernel changes).

Interesting.  Did not know I could use -m32 with any reliability.
Setting up my testing environment may be a challenge as I use
mpfr/gmp, so would need -m32 aware versions of those libraries.
I normally install whatever the port collection offers for mpfr/gmp.
I suppose I would need to install those independently to get
multilib support.  I would also need to compile 2 versions of my
testing framework (ie., additional support library).

The BIOS does have a enable/disable button for virtualization.
During the great drm-legacy-kmod event of the last month, enabling
virtualization locks up a i386 FreeBSD kernel very quickly.
Perhaps, virtualization works under amd64.  Guess I'll burn
an image onto a memstick an d give it a whirl.

> However, an amd64 kernel is going to be a more stable, better
> supported kernel for running i386 binaries than an i386 kernel
> at this point, and that will become even more true in the future.

This is interesting as well.  Does this mean that amd64 is now 
the only tier 1 platform and all other architectures are after
thoughts?

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-28 Thread John Baldwin
On 2/23/19 8:39 AM, Steve Kargl wrote:
> On Sat, Feb 23, 2019 at 08:32:23AM -0800, Conrad Meyer wrote:
>> On Sat, Feb 23, 2019 at 12:44 AM Steve Kargl
>>  wrote:
>>> Ideas?
>>> ...
>>> +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 
>>> 686-class CPU)
>>>Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13
>>
>> https://ark.intel.com/content/www/us/en/ark/products/31728/intel-core-2-duo-processor-t7250-2m-cache-2-00-ghz-800-mhz-fsb.html
>>
>>> Intel® Virtualization Technology (VT-x) ‡  Yes
>>> Intel® 64 ‡   Yes
>>
>>> Merom is the first Intel mobile processor to feature Intel 64 architecture.
>>
>> So, as a workaround, maybe run amd64?
> 
> This is the only i386 FreeBSD system that I have.  This
> is the system where all the libm changes I've made have
> been tested.  i386 floating point is different than 
> amd64 floating point.  See npx.c and the history of any
> of the long double functions that I've worked on.  If
> this laptop does not run i386, there will be no testing
> of libm changes on the architecture.

Yes, but we set the initial FPU control word for 32-bit binaries to match i386 
when
running i386 binaries under an amd64 kernel.

See these comments in sys/x86/include/fpu.h with which you are likely familiar:

/*
 * The hardware default control word for i387's and later coprocessors is
 * 0x37F, giving:
 *
 *  round to nearest
 *  64-bit precision
 *  all exceptions masked.
 *
 * FreeBSD/i386 uses 53 bit precision for things like fadd/fsub/fsqrt etc
 * because of the difference between memory and fpu register stack arguments.
 * If its using an intermediate fpu register, it has 80/64 bits to work
 * with.  If it uses memory, it has 64/53 bits to work with.  However,
 * gcc is aware of this and goes to a fair bit of trouble to make the
 * best use of it.
 *
 * This is mostly academic for AMD64, because the ABI prefers the use
 * SSE2 based math.  For FreeBSD/amd64, we go with the default settings.
 */
#define __INITIAL_FPUCW__   0x037F
#define __INITIAL_FPUCW_I386__  0x127F
#define __INITIAL_NPXCW__   __INITIAL_FPUCW_I386__
#define __INITIAL_MXCSR__   0x1F80
#define __INITIAL_MXCSR_MASK__  0xFFBF

And this code in ia32_setregs() in sys/amd64/ia32/ia32_signal.c to set the
initial register values for i386 processes:

/*
 * Clear registers on exec
 */
void
ia32_setregs(struct thread *td, struct image_params *imgp, u_long stack)
{
...
pcb->pcb_initial_fpucw = __INITIAL_FPUCW_I386__;
...
}

This matches what exec_setregs() in sys/i386/i386/machdep.c does:

/*
 * Reset registers to default values on exec.
 */
void
exec_setregs(struct thread *td, struct image_params *imgp, u_long stack)
{
...
pcb->pcb_initial_npxcw = __INITIAL_NPXCW__;
...
}

You can do all your tests directly on amd64 by just adding "-m32" to compile 
i386
binaries against the libraries in /usr/lib32 and you will generate the same i386
binaries as if you were building on an i386 system.  If you are a bit more 
paranoid,
you can install an i386 world and chroot into it and use that to test i386.  I 
do
this myself (-m32) for testing i386 things.  I also run i386 VMs under bhyve on
amd64 hosts.  I'm not sure your laptop's CPU can run i386 VMs though, and you 
don't
need a VM to test userland-only changes (I'm usually trying to test kernel 
changes).

However, an amd64 kernel is going to be a more stable, better supported kernel 
for
running i386 binaries than an i386 kernel at this point, and that will become 
even
more true in the future.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-25 Thread Steve Kargl
On Sun, Feb 24, 2019 at 10:27:26AM +0100, Tijl Coosemans wrote:
> On Sat, 23 Feb 2019 17:28:51 -0800 Steve Kargl
>  wrote:
> > On Sat, Feb 23, 2019 at 12:03:58PM -0700, Warner Losh wrote:
> >> On Sat, Feb 23, 2019 at 10:57 AM Steve Kargl
> >>  wrote:
> >>> Supposely, the laptop only has 4 GB of memory.  Not sure how
> >>> it finds memory above 4 GB.
> >> 
> >> Some older chipsets had a 'hole' in memory that they mapped the PCI bus
> >> into and then remapped RAM in that range up above the 4GB boundary. That's
> >> how it can find memory above 4GB when you have only 4GB of RAM. I hit it
> >> with the PC Card stuff I did back in the day since it broke certain
> >> heuristics I had in the code that turned out to be unwise for many reasons
> >> (not just this one). I don't recall all the details, since it's been so
> >> long ago.
> >> 
> >> So I think kib@ is right when he highlights
> >>> +0x0001 - 0x00011ffe7fff, 536772608 bytes (131048 pages)
> >> 
> >> as the memory, since this is indeed above the 4GB limit.  It's about 128k
> >> of 4k pages (just shy of the 131072 I'd expect), which is a surprisingly
> >> round number. Also one that's easy to implement in hardware. So it
> >> certainly "smells" the same...
> >> 
> >> That's why I agree with others that hw.above4g_allow=0 is worth a shot, for
> >> at least diagnostic purposes. This memory wasn't used before and if it's
> >> used now by the drm drivers, and those aren't PAE safe (meaning they cope
> >> with allocations beyond 4GB), then that's quite useful to know. Or maybe
> >> it's a different driver hating things and stomping on video memory due to
> >> wrap around.
> > 
> > Thanks for the explanation.  Here's an update.  TL;DR: xorg is
> > up and running; drm-legacy-kmod seems to be unsafe/unaware of
> > PAE.
> > 
> > Build world/kernel, drm-legacy-kmod, minimum needed ports for xorg.
> > Kernel is unmodified GENERIC.
> > 
> > Reboot without setting anything in /boot/loader.conf
> > 
> > % sysctl -a | grep above
> > % sysctl -a | grep pae
> > vm.pmap.pae_mode: 1
> > % kldload /boot/modules/i915kms.ko
> > 
> > Black screen of death. Did not even get to running xinit.
> > 
> > Hard reset to single user mode.
> > 
> > # fsck -y
> > # mount -a
> > # vi /boot/loader.conf.
> > (Add hw.above4g_allow=0)
> > # sync
> > # shutdown -r now
> > 
> > % sysctl -a | grep above
> > % sysctl -a | grep pae
> > vm.pmap.pae_mode: 1
> > % cat /boot/loader.conf
> > if_ath_load="YES"
> > if_ath_pci_load="YES"
> > cpuctl_load="YES"
> > hw.above4g_allow=0
> > % kldload /boot/modules/i915kms.ko
> > 
> > Switch to vt3, login as normal user.
> > 
> > % startx -- -depth 24 >& ~/tmp/.x.out
> > 
> > Xorg is up and running.  Not sure why my first attempt at using
> > hw.above4g_allow=0 did not work.  Perhaps, mismatch between the xorg
> > bits and kernel/world bits.
> > 
> > % sysctl -a | grep mem
> > vm.lowmem_period: 10
> > vm.kmem_map_free: 1669365760
> > vm.kmem_map_size: 41910272
> > vm.kmem_size_scale: 1
> > vm.kmem_size_max: 1711276032
> > vm.kmem_size_min: 12582912
> > vm.kmem_zmax: 65536
> > vm.kmem_size: 1711276032
> > hw.physmem: 3715489792
> > hw.usermem: 3592175616
> > hw.realmem: 4294963200
> > 
> > % dmesg | grep memory
> > real memory  = 4294967296 (4096 MB)
> > avail memory = 3637673984 (3469 MB)
> > agp0: aperture size is 256M, detected 7676k stolen memory
> > 
> > The pre-r343567 dmesg has
> > 
> > real memory  = 4294967296 (4096 MB)
> > avail memory = 3639914496 (3471 MB)
> > 
> > I can live with 2 MB loss.
> > 
> > Conclusion, drm-legacy-kmod is not PAE safe/aware.
> > 
> > Probably want to put something in /usr/src about possible
> > problems with new pmap.h on i386 FreeBSD.
> 
> Now it would be interesting to do the same tests with drm-current-kmod.

Caveats: old laptop and I only rebuilt drm-current-kmod and the
gpu-firmware-kmod.

drm-current-kmod does not work.  The setting of hw.above4g_allow
is immaterial.

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-25 Thread Warner Losh
On Sun, Feb 24, 2019 at 10:58 AM Steve Kargl <
s...@troutmask.apl.washington.edu> wrote:

> On Sun, Feb 24, 2019 at 10:06:53AM -0700, Warner Losh wrote:
> > >
> >
> > Maybe I missed it, but Steve, did you run the patched in a different way
> > tests that I suggested? Replacing the limits with 0x for testing
> > purposes to ensure that drm isn't saying it can cope with larger
> addresses?
> > That might help narrow down what the problem here one more level than
> "It's
> > PAE".
> >
>
> So, I dug through the code a bit.  Niclas changed the port to
> use BUS_SPACE_MAXADDR.  This is defined in include/x86/bus.h
>
> #if defined(__amd64__) || defined(PAE)
> #define BUS_SPACE_MAXADDR_48BIT 0xULL
> #define BUS_SPACE_MAXADDR   0xULL
> #else
> #define BUS_SPACE_MAXADDR   0x
> #endif
>
> I don't know if defined(PAE) is effected by hw.above4g_allow,
> or where it gets defined or if it is defined.
>

Grepping suggests that PAE isn't defined w/o the option. The option is only
in the PAE kernel, so maybe my test wouldn't say anything useful and it's a
different issue.

Warner
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-24 Thread Steve Kargl
On Sun, Feb 24, 2019 at 10:06:53AM -0700, Warner Losh wrote:
> On Sun, Feb 24, 2019 at 2:27 AM Tijl Coosemans  wrote:
> 
> > On Sat, 23 Feb 2019 17:28:51 -0800 Steve Kargl
> >  wrote:
> > > On Sat, Feb 23, 2019 at 12:03:58PM -0700, Warner Losh wrote:
> > >> On Sat, Feb 23, 2019 at 10:57 AM Steve Kargl
> > >>  wrote:
> > >>> Supposely, the laptop only has 4 GB of memory.  Not sure how
> > >>> it finds memory above 4 GB.
> > >>
> > >> Some older chipsets had a 'hole' in memory that they mapped the PCI bus
> > >> into and then remapped RAM in that range up above the 4GB boundary.
> > That's
> > >> how it can find memory above 4GB when you have only 4GB of RAM. I hit it
> > >> with the PC Card stuff I did back in the day since it broke certain
> > >> heuristics I had in the code that turned out to be unwise for many
> > reasons
> > >> (not just this one). I don't recall all the details, since it's been so
> > >> long ago.
> > >>
> > >> So I think kib@ is right when he highlights
> > >>> +0x0001 - 0x00011ffe7fff, 536772608 bytes (131048
> > pages)
> > >>
> > >> as the memory, since this is indeed above the 4GB limit.  It's about
> > 128k
> > >> of 4k pages (just shy of the 131072 I'd expect), which is a surprisingly
> > >> round number. Also one that's easy to implement in hardware. So it
> > >> certainly "smells" the same...
> > >>
> > >> That's why I agree with others that hw.above4g_allow=0 is worth a shot,
> > for
> > >> at least diagnostic purposes. This memory wasn't used before and if it's
> > >> used now by the drm drivers, and those aren't PAE safe (meaning they
> > cope
> > >> with allocations beyond 4GB), then that's quite useful to know. Or maybe
> > >> it's a different driver hating things and stomping on video memory due
> > to
> > >> wrap around.
> > >
> > > Thanks for the explanation.  Here's an update.  TL;DR: xorg is
> > > up and running; drm-legacy-kmod seems to be unsafe/unaware of
> > > PAE.
> > >
> > > Build world/kernel, drm-legacy-kmod, minimum needed ports for xorg.
> > > Kernel is unmodified GENERIC.
> > >
> > > Reboot without setting anything in /boot/loader.conf
> > >
> > > % sysctl -a | grep above
> > > % sysctl -a | grep pae
> > > vm.pmap.pae_mode: 1
> > > % kldload /boot/modules/i915kms.ko
> > >
> > > Black screen of death. Did not even get to running xinit.
> > >
> > > Hard reset to single user mode.
> > >
> > > # fsck -y
> > > # mount -a
> > > # vi /boot/loader.conf.
> > > (Add hw.above4g_allow=0)
> > > # sync
> > > # shutdown -r now
> > >
> > > % sysctl -a | grep above
> > > % sysctl -a | grep pae
> > > vm.pmap.pae_mode: 1
> > > % cat /boot/loader.conf
> > > if_ath_load="YES"
> > > if_ath_pci_load="YES"
> > > cpuctl_load="YES"
> > > hw.above4g_allow=0
> > > % kldload /boot/modules/i915kms.ko
> > >
> > > Switch to vt3, login as normal user.
> > >
> > > % startx -- -depth 24 >& ~/tmp/.x.out
> > >
> > > Xorg is up and running.  Not sure why my first attempt at using
> > > hw.above4g_allow=0 did not work.  Perhaps, mismatch between the xorg
> > > bits and kernel/world bits.
> > >
> > > % sysctl -a | grep mem
> > > vm.lowmem_period: 10
> > > vm.kmem_map_free: 1669365760
> > > vm.kmem_map_size: 41910272
> > > vm.kmem_size_scale: 1
> > > vm.kmem_size_max: 1711276032
> > > vm.kmem_size_min: 12582912
> > > vm.kmem_zmax: 65536
> > > vm.kmem_size: 1711276032
> > > hw.physmem: 3715489792
> > > hw.usermem: 3592175616
> > > hw.realmem: 4294963200
> > >
> > > % dmesg | grep memory
> > > real memory  = 4294967296 (4096 MB)
> > > avail memory = 3637673984 (3469 MB)
> > > agp0: aperture size is 256M, detected 7676k stolen memory
> > >
> > > The pre-r343567 dmesg has
> > >
> > > real memory  = 4294967296 (4096 MB)
> > > avail memory = 3639914496 (3471 MB)
> > >
> > > I can live with 2 MB loss.
> > >
> > > Conclusion, drm-legacy-kmod is not PAE safe/aware.
> > >
> > > Probably want to put something in /usr/src about possible
> > > problems with new pmap.h on i386 FreeBSD.
> >
> > Now it would be interesting to do the same tests with drm-current-kmod.
> >
> 
> Maybe I missed it, but Steve, did you run the patched in a different way
> tests that I suggested? Replacing the limits with 0x for testing
> purposes to ensure that drm isn't saying it can cope with larger addresses?
> That might help narrow down what the problem here one more level than "It's
> PAE".
> 

I did try a few patches to the drm-legacy-kmod port when I first 
found that it would not build, but I honestly don't remember if
your suggestion was one of them.  I'm testing with the stock port
at 

  r492863 | zeising | 2019-02-13 12:52:03 -0800 (Wed, 13 Feb 2019) | 8 lines

  graphics/drm-legacy-kmod: Update snapshot

  Update the graphics/drm-legacy-kmod drivers to the latest snapshot.  This
  includes fixes to make the driver build on CURRENT after base r343567.

  Reported by:Steve Kargl
  Approved by:jmd (maintainer, implicit)

If I do not set hw.above4g_allow to 0, the above port will lock up
the syst

Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-24 Thread Steve Kargl
On Sun, Feb 24, 2019 at 10:06:53AM -0700, Warner Losh wrote:
> >
> 
> Maybe I missed it, but Steve, did you run the patched in a different way
> tests that I suggested? Replacing the limits with 0x for testing
> purposes to ensure that drm isn't saying it can cope with larger addresses?
> That might help narrow down what the problem here one more level than "It's
> PAE".
> 

So, I dug through the code a bit.  Niclas changed the port to
use BUS_SPACE_MAXADDR.  This is defined in include/x86/bus.h

#if defined(__amd64__) || defined(PAE)
#define BUS_SPACE_MAXADDR_48BIT 0xULL
#define BUS_SPACE_MAXADDR   0xULL
#else
#define BUS_SPACE_MAXADDR   0x
#endif

I don't know if defined(PAE) is effected by hw.above4g_allow,
or where it gets defined or if it is defined.

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-24 Thread Warner Losh
On Sun, Feb 24, 2019 at 2:27 AM Tijl Coosemans  wrote:

> On Sat, 23 Feb 2019 17:28:51 -0800 Steve Kargl
>  wrote:
> > On Sat, Feb 23, 2019 at 12:03:58PM -0700, Warner Losh wrote:
> >> On Sat, Feb 23, 2019 at 10:57 AM Steve Kargl
> >>  wrote:
> >>> Supposely, the laptop only has 4 GB of memory.  Not sure how
> >>> it finds memory above 4 GB.
> >>
> >> Some older chipsets had a 'hole' in memory that they mapped the PCI bus
> >> into and then remapped RAM in that range up above the 4GB boundary.
> That's
> >> how it can find memory above 4GB when you have only 4GB of RAM. I hit it
> >> with the PC Card stuff I did back in the day since it broke certain
> >> heuristics I had in the code that turned out to be unwise for many
> reasons
> >> (not just this one). I don't recall all the details, since it's been so
> >> long ago.
> >>
> >> So I think kib@ is right when he highlights
> >>> +0x0001 - 0x00011ffe7fff, 536772608 bytes (131048
> pages)
> >>
> >> as the memory, since this is indeed above the 4GB limit.  It's about
> 128k
> >> of 4k pages (just shy of the 131072 I'd expect), which is a surprisingly
> >> round number. Also one that's easy to implement in hardware. So it
> >> certainly "smells" the same...
> >>
> >> That's why I agree with others that hw.above4g_allow=0 is worth a shot,
> for
> >> at least diagnostic purposes. This memory wasn't used before and if it's
> >> used now by the drm drivers, and those aren't PAE safe (meaning they
> cope
> >> with allocations beyond 4GB), then that's quite useful to know. Or maybe
> >> it's a different driver hating things and stomping on video memory due
> to
> >> wrap around.
> >
> > Thanks for the explanation.  Here's an update.  TL;DR: xorg is
> > up and running; drm-legacy-kmod seems to be unsafe/unaware of
> > PAE.
> >
> > Build world/kernel, drm-legacy-kmod, minimum needed ports for xorg.
> > Kernel is unmodified GENERIC.
> >
> > Reboot without setting anything in /boot/loader.conf
> >
> > % sysctl -a | grep above
> > % sysctl -a | grep pae
> > vm.pmap.pae_mode: 1
> > % kldload /boot/modules/i915kms.ko
> >
> > Black screen of death. Did not even get to running xinit.
> >
> > Hard reset to single user mode.
> >
> > # fsck -y
> > # mount -a
> > # vi /boot/loader.conf.
> > (Add hw.above4g_allow=0)
> > # sync
> > # shutdown -r now
> >
> > % sysctl -a | grep above
> > % sysctl -a | grep pae
> > vm.pmap.pae_mode: 1
> > % cat /boot/loader.conf
> > if_ath_load="YES"
> > if_ath_pci_load="YES"
> > cpuctl_load="YES"
> > hw.above4g_allow=0
> > % kldload /boot/modules/i915kms.ko
> >
> > Switch to vt3, login as normal user.
> >
> > % startx -- -depth 24 >& ~/tmp/.x.out
> >
> > Xorg is up and running.  Not sure why my first attempt at using
> > hw.above4g_allow=0 did not work.  Perhaps, mismatch between the xorg
> > bits and kernel/world bits.
> >
> > % sysctl -a | grep mem
> > vm.lowmem_period: 10
> > vm.kmem_map_free: 1669365760
> > vm.kmem_map_size: 41910272
> > vm.kmem_size_scale: 1
> > vm.kmem_size_max: 1711276032
> > vm.kmem_size_min: 12582912
> > vm.kmem_zmax: 65536
> > vm.kmem_size: 1711276032
> > hw.physmem: 3715489792
> > hw.usermem: 3592175616
> > hw.realmem: 4294963200
> >
> > % dmesg | grep memory
> > real memory  = 4294967296 (4096 MB)
> > avail memory = 3637673984 (3469 MB)
> > agp0: aperture size is 256M, detected 7676k stolen memory
> >
> > The pre-r343567 dmesg has
> >
> > real memory  = 4294967296 (4096 MB)
> > avail memory = 3639914496 (3471 MB)
> >
> > I can live with 2 MB loss.
> >
> > Conclusion, drm-legacy-kmod is not PAE safe/aware.
> >
> > Probably want to put something in /usr/src about possible
> > problems with new pmap.h on i386 FreeBSD.
>
> Now it would be interesting to do the same tests with drm-current-kmod.
>

Maybe I missed it, but Steve, did you run the patched in a different way
tests that I suggested? Replacing the limits with 0x for testing
purposes to ensure that drm isn't saying it can cope with larger addresses?
That might help narrow down what the problem here one more level than "It's
PAE".

Warner
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-24 Thread Tijl Coosemans
On Sat, 23 Feb 2019 17:28:51 -0800 Steve Kargl
 wrote:
> On Sat, Feb 23, 2019 at 12:03:58PM -0700, Warner Losh wrote:
>> On Sat, Feb 23, 2019 at 10:57 AM Steve Kargl
>>  wrote:
>>> Supposely, the laptop only has 4 GB of memory.  Not sure how
>>> it finds memory above 4 GB.
>> 
>> Some older chipsets had a 'hole' in memory that they mapped the PCI bus
>> into and then remapped RAM in that range up above the 4GB boundary. That's
>> how it can find memory above 4GB when you have only 4GB of RAM. I hit it
>> with the PC Card stuff I did back in the day since it broke certain
>> heuristics I had in the code that turned out to be unwise for many reasons
>> (not just this one). I don't recall all the details, since it's been so
>> long ago.
>> 
>> So I think kib@ is right when he highlights
>>> +0x0001 - 0x00011ffe7fff, 536772608 bytes (131048 pages)
>> 
>> as the memory, since this is indeed above the 4GB limit.  It's about 128k
>> of 4k pages (just shy of the 131072 I'd expect), which is a surprisingly
>> round number. Also one that's easy to implement in hardware. So it
>> certainly "smells" the same...
>> 
>> That's why I agree with others that hw.above4g_allow=0 is worth a shot, for
>> at least diagnostic purposes. This memory wasn't used before and if it's
>> used now by the drm drivers, and those aren't PAE safe (meaning they cope
>> with allocations beyond 4GB), then that's quite useful to know. Or maybe
>> it's a different driver hating things and stomping on video memory due to
>> wrap around.
> 
> Thanks for the explanation.  Here's an update.  TL;DR: xorg is
> up and running; drm-legacy-kmod seems to be unsafe/unaware of
> PAE.
> 
> Build world/kernel, drm-legacy-kmod, minimum needed ports for xorg.
> Kernel is unmodified GENERIC.
> 
> Reboot without setting anything in /boot/loader.conf
> 
> % sysctl -a | grep above
> % sysctl -a | grep pae
> vm.pmap.pae_mode: 1
> % kldload /boot/modules/i915kms.ko
> 
> Black screen of death. Did not even get to running xinit.
> 
> Hard reset to single user mode.
> 
> # fsck -y
> # mount -a
> # vi /boot/loader.conf.
> (Add hw.above4g_allow=0)
> # sync
> # shutdown -r now
> 
> % sysctl -a | grep above
> % sysctl -a | grep pae
> vm.pmap.pae_mode: 1
> % cat /boot/loader.conf
> if_ath_load="YES"
> if_ath_pci_load="YES"
> cpuctl_load="YES"
> hw.above4g_allow=0
> % kldload /boot/modules/i915kms.ko
> 
> Switch to vt3, login as normal user.
> 
> % startx -- -depth 24 >& ~/tmp/.x.out
> 
> Xorg is up and running.  Not sure why my first attempt at using
> hw.above4g_allow=0 did not work.  Perhaps, mismatch between the xorg
> bits and kernel/world bits.
> 
> % sysctl -a | grep mem
> vm.lowmem_period: 10
> vm.kmem_map_free: 1669365760
> vm.kmem_map_size: 41910272
> vm.kmem_size_scale: 1
> vm.kmem_size_max: 1711276032
> vm.kmem_size_min: 12582912
> vm.kmem_zmax: 65536
> vm.kmem_size: 1711276032
> hw.physmem: 3715489792
> hw.usermem: 3592175616
> hw.realmem: 4294963200
> 
> % dmesg | grep memory
> real memory  = 4294967296 (4096 MB)
> avail memory = 3637673984 (3469 MB)
> agp0: aperture size is 256M, detected 7676k stolen memory
> 
> The pre-r343567 dmesg has
> 
> real memory  = 4294967296 (4096 MB)
> avail memory = 3639914496 (3471 MB)
> 
> I can live with 2 MB loss.
> 
> Conclusion, drm-legacy-kmod is not PAE safe/aware.
> 
> Probably want to put something in /usr/src about possible
> problems with new pmap.h on i386 FreeBSD.

Now it would be interesting to do the same tests with drm-current-kmod.
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Steve Kargl
On Sat, Feb 23, 2019 at 12:03:58PM -0700, Warner Losh wrote:
> On Sat, Feb 23, 2019 at 10:57 AM Steve Kargl <
> s...@troutmask.apl.washington.edu> wrote:
> 
> > Supposely, the laptop only has 4 GB of memory.  Not sure how
> > it finds memory above 4 GB.
> >
> 
> Some older chipsets had a 'hole' in memory that they mapped the PCI bus
> into and then remapped RAM in that range up above the 4GB boundary. That's
> how it can find memory above 4GB when you have only 4GB of RAM. I hit it
> with the PC Card stuff I did back in the day since it broke certain
> heuristics I had in the code that turned out to be unwise for many reasons
> (not just this one). I don't recall all the details, since it's been so
> long ago.
> 
> So I think kib@ is right when he highlights
> > +0x0001 - 0x00011ffe7fff, 536772608 bytes (131048 pages)
> 
> as the memory, since this is indeed above the 4GB limit.  It's about 128k
> of 4k pages (just shy of the 131072 I'd expect), which is a surprisingly
> round number. Also one that's easy to implement in hardware. So it
> certainly "smells" the same...
> 
> That's why I agree with others that hw.above4g_allow=0 is worth a shot, for
> at least diagnostic purposes. This memory wasn't used before and if it's
> used now by the drm drivers, and those aren't PAE safe (meaning they cope
> with allocations beyond 4GB), then that's quite useful to know. Or maybe
> it's a different driver hating things and stomping on video memory due to
> wrap around.
> 
> Warner

Thanks for the explanation.  Here's an update.  TL;DR: xorg is
up and running; drm-legacy-kmod seems to be unsafe/unaware of
PAE.

Build world/kernel, drm-legacy-kmod, minimum needed ports for xorg.
Kernel is unmodified GENERIC.

Reboot without setting anything in /boot/loader.conf

% sysctl -a | grep above
% sysctl -a | grep pae
vm.pmap.pae_mode: 1
% kldload /boot/modules/i915kms.ko

Black screen of death. Did not even get to running xinit.

Hard reset to single user mode.

# fsck -y
# mount -a
# vi /boot/loader.conf.
(Add hw.above4g_allow=0)
# sync
# shutdown -r now

% sysctl -a | grep above
% sysctl -a | grep pae
vm.pmap.pae_mode: 1
% cat /boot/loader.conf
if_ath_load="YES"
if_ath_pci_load="YES"
cpuctl_load="YES"
hw.above4g_allow=0
% kldload /boot/modules/i915kms.ko

Switch to vt3, login as normal user.

% startx -- -depth 24 >& ~/tmp/.x.out

Xorg is up and running.  Not sure why my first attempt at using
hw.above4g_allow=0 did not work.  Perhaps, mismatch between the xorg
bits and kernel/world bits.

% sysctl -a | grep mem
vm.lowmem_period: 10
vm.kmem_map_free: 1669365760
vm.kmem_map_size: 41910272
vm.kmem_size_scale: 1
vm.kmem_size_max: 1711276032
vm.kmem_size_min: 12582912
vm.kmem_zmax: 65536
vm.kmem_size: 1711276032
hw.physmem: 3715489792
hw.usermem: 3592175616
hw.realmem: 4294963200

% dmesg | grep memory
real memory  = 4294967296 (4096 MB)
avail memory = 3637673984 (3469 MB)
agp0: aperture size is 256M, detected 7676k stolen memory

The pre-r343567 dmesg has

real memory  = 4294967296 (4096 MB)
avail memory = 3639914496 (3471 MB)

I can live with 2 MB loss.

Conclusion, drm-legacy-kmod is not PAE safe/aware.

Probably want to put something in /usr/src about possible
problems with new pmap.h on i386 FreeBSD.

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Rodney W. Grimes
> On Sat, Feb 23, 2019 at 10:57 AM Steve Kargl <
> s...@troutmask.apl.washington.edu> wrote:
> 
> > Supposely, the laptop only has 4 GB of memory.  Not sure how
> > it finds memory above 4 GB.
> >
> 
> Some older chipsets had a 'hole' in memory that they mapped the PCI bus
> into and then remapped RAM in that range up above the 4GB boundary. That's
> how it can find memory above 4GB when you have only 4GB of RAM. I hit it
> with the PC Card stuff I did back in the day since it broke certain
> heuristics I had in the code that turned out to be unwise for many reasons
> (not just this one). I don't recall all the details, since it's been so
> long ago.
> 
> So I think kib@ is right when he highlights
> > +0x0001 - 0x00011ffe7fff, 536772608 bytes (131048 pages)
> 
> as the memory, since this is indeed above the 4GB limit.  It's about 128k
> of 4k pages (just shy of the 131072 I'd expect), which is a surprisingly
> round number. Also one that's easy to implement in hardware. So it
> certainly "smells" the same...
> 
> That's why I agree with others that hw.above4g_allow=0 is worth a shot, for

It sounds like that this sysctl didnt show up for him,
he said he set it, but it does not show up in sysctl when
he is booted, that seems very odd, unless it didnt get
added until a later commit.

> at least diagnostic purposes. This memory wasn't used before and if it's
> used now by the drm drivers, and those aren't PAE safe (meaning they cope
> with allocations beyond 4GB), then that's quite useful to know. Or maybe
> it's a different driver hating things and stomping on video memory due to
> wrap around.

I'll see if I can spend a few moments this afternoon duplicating this,
I have 2 thinkpads that are 64 bit, with >4G of ram, that I can install
i386 on and test.

-- 
Rod Grimes rgri...@freebsd.org
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Konstantin Belousov
On Sat, Feb 23, 2019 at 10:04:07AM -0800, Rodney W. Grimes wrote:
> > On Sat, Feb 23, 2019 at 11:19:31AM +0200, Konstantin Belousov wrote:
> > > On Fri, Feb 22, 2019 at 07:26:44PM -0800, Steve Kargl wrote:
> > > > On Thu, Feb 21, 2019 at 10:04:10PM -0800, Steve Kargl wrote:
> > > > > On Thu, Feb 21, 2019 at 07:39:25PM -0800, Steve Kargl wrote:
> > > > > > r343567 merges the PAE vs non-PAE pmap headers for i386
> > > > > > freebsd.  After bisection and dealing with the drm-legacy-kmod
> > > > > > fallout, I bisected /usr/src to r343567.  Building world and
> > > > > > a GENERIC kernel and the minimum set of ports to start Xorg
> > > > > > on my Dell Latitude D530 laptop, results in a black screen
> > > > > > of death and a locked up laptop (no keyboard, mouse, or video).
> > > > > > 
> > > > > > A comparison of /etc/log/Xorg.0.log for r343566 (Xorg loads
> > > > > > and functions) and r353467 (Xorg black screen of death) shows
> > > > > > that /boot/modules/i915kms.ko loads correctly as the log
> > > > > > files are identical.
> > > > > > 
> > > > > > Comparing dmesg for r343566 to r343567 shows the following
> > > > > >  
> > > > > > --- dmesg.3435662019-02-20 08:13:07.727202000 -0800
> > > > > > +++ dmesg.3435672019-02-21 19:02:24.469562000 -0800
> > > > > > @@ -3,11 +3,11 @@
> > > > > >  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 13.0-CURRENT r343566 GENERIC i386
> > > > > > +FreeBSD 13.0-CURRENT r343567 GENERIC i386
> > > > > >  FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based 
> > > > > > on LLVM 7.0.1)
> > > > > >  WARNING: WITNESS option enabled, expect reduced performance.
> > > > > >  VT(vga): resolution 640x480
> > > > > > -CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.05-MHz 
> > > > > > 686-class CPU)
> > > > > > +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 
> > > > > > 686-class CPU)
> > > > > >Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  
> > > > > > Stepping=13
> > > > > >
> > > > > > Features=0xbfebfbff
> > > > > >
> > > > > > Features2=0xe3bd
> > > > > > @@ -16,7 +16,7 @@
> > > > > >VT-x: (disabled in BIOS) HLT,PAUSE
> > > > > >TSC: P-state invariant, performance statistics
> > > > > >  real memory  = 4294967296 (4096 MB)
> > > > > > -avail memory = 3639914496 (3471 MB)
> > > > > > +avail memory = 4154175488 (3961 MB)
> > > > > > 
> > > > > > Somehow the r343567 kernel found an addition 490 MB of memory,
> > > > > > which leads me to believe the after loading i915kms.ko there
> > > > > > is some serious memory stomping issues.
> > > > > > 
> > > > > > I willing to do whatever is necessary to fix this issue (shorter
> > > > > > of mailing the laptop to someone).  Is it possible to revert
> > > > > > r343567 and move forward? 
> > > > > > 
> > > > > 
> > > > > More info from sysctl.  With the "good" r343566, I see
> > > > > 
> > > > > vm.kmem_map_free: 1187033088
> > > > > vm.kmem_map_size: 27234304
> > > > > vm.kmem_size_scale: 3
> > > > > vm.kmem_size_max: 1715470336
> > > > > vm.kmem_size_min: 12582912
> > > > > vm.kmem_zmax: 65536
> > > > > vm.kmem_size: 1214267392
> > > > > hw.physmem: 3714269184
> > > > > hw.usermem: 3650867200
> > > > > hw.realmem: 4294963200
> > > > > 
> > > > > With the problematic r343567, I see
> > > > > 
> > > > > vm.kmem_map_free: 1683152896
> > > > > vm.kmem_map_size: 28123136
> > > > > vm.kmem_size_scale: 1
> > > > > vm.kmem_size_max: 1711276032
> > > > > vm.kmem_size_min: 12582912
> > > > > vm.kmem_zmax: 65536
> > > > > vm.kmem_size: 1711276032
> > > > > hw.physmem: 4252360704
> > > > > hw.usermem: 4146999296
> > > > > hw.realmem: 4294963200
> > > > > 
> > > > > Ideas?
> > > > > 
> > > > 
> > > > Here's the 'diff -uw' between a verbose dmesg boot of r343566
> > > > and dmesg boot of r343567.  The memory size looks rather puzzling.
> > > > Can the people responsible for the i386 pmap.h merging take a
> > > > look?
> > > What is puzzling ?
> > 
> > Supposely, the laptop only has 4 GB of memory.  Not sure how
> > it finds memory above 4 GB.
> 
> It probably has what is called UMA and the graphics
> framebuffer is mapped into memory below 4G and the
> original memory is mapped above 4G, giving you this
> little bit of >4G memory that is trigger PAE now.
The PCI window takes between 300M up to 1G, so if 4G of RAM is installed,
the same amount is wasted because it is remapped above 4G, regardless
of the CPU bitness.

> 
> This may not be desired, is there any performance
> advantage to not turning on PAE in this situation?
PAE enables nx bit, this was the main reason for the PAE commit.

> 
> > I build 343566 and minimum ports needed for Xorg including
> > drm-legacy-kmod.  I can load xorg, and in fact, I am typing
> > this email now on the laptop

Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Warner Losh
On Sat, Feb 23, 2019 at 10:57 AM Steve Kargl <
s...@troutmask.apl.washington.edu> wrote:

> Supposely, the laptop only has 4 GB of memory.  Not sure how
> it finds memory above 4 GB.
>

Some older chipsets had a 'hole' in memory that they mapped the PCI bus
into and then remapped RAM in that range up above the 4GB boundary. That's
how it can find memory above 4GB when you have only 4GB of RAM. I hit it
with the PC Card stuff I did back in the day since it broke certain
heuristics I had in the code that turned out to be unwise for many reasons
(not just this one). I don't recall all the details, since it's been so
long ago.

So I think kib@ is right when he highlights
> +0x0001 - 0x00011ffe7fff, 536772608 bytes (131048 pages)

as the memory, since this is indeed above the 4GB limit.  It's about 128k
of 4k pages (just shy of the 131072 I'd expect), which is a surprisingly
round number. Also one that's easy to implement in hardware. So it
certainly "smells" the same...

That's why I agree with others that hw.above4g_allow=0 is worth a shot, for
at least diagnostic purposes. This memory wasn't used before and if it's
used now by the drm drivers, and those aren't PAE safe (meaning they cope
with allocations beyond 4GB), then that's quite useful to know. Or maybe
it's a different driver hating things and stomping on video memory due to
wrap around.

Warner
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Steve Kargl
On Sat, Feb 23, 2019 at 01:22:28PM +0300, Vladimir Kondratyev wrote:
> On 2019-02-22 09:04, Steve Kargl wrote:
> > 
> > Ideas?
> 
> Place hw.above4g_allow=0 into /boot/loader.conf?
> 

Tried that.  sysctl -a does not report hw.above4g_allowed,
so have no idea if it set.

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Conrad Meyer
On Sat, Feb 23, 2019 at 12:44 AM Steve Kargl
 wrote:
> Ideas?
> ...
> +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 686-class 
> CPU)
>Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13

https://ark.intel.com/content/www/us/en/ark/products/31728/intel-core-2-duo-processor-t7250-2m-cache-2-00-ghz-800-mhz-fsb.html

> Intel® Virtualization Technology (VT-x) ‡  Yes
> Intel® 64 ‡   Yes

> Merom is the first Intel mobile processor to feature Intel 64 architecture.

So, as a workaround, maybe run amd64?
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Rodney W. Grimes
> On Sat, Feb 23, 2019 at 11:19:31AM +0200, Konstantin Belousov wrote:
> > On Fri, Feb 22, 2019 at 07:26:44PM -0800, Steve Kargl wrote:
> > > On Thu, Feb 21, 2019 at 10:04:10PM -0800, Steve Kargl wrote:
> > > > On Thu, Feb 21, 2019 at 07:39:25PM -0800, Steve Kargl wrote:
> > > > > r343567 merges the PAE vs non-PAE pmap headers for i386
> > > > > freebsd.  After bisection and dealing with the drm-legacy-kmod
> > > > > fallout, I bisected /usr/src to r343567.  Building world and
> > > > > a GENERIC kernel and the minimum set of ports to start Xorg
> > > > > on my Dell Latitude D530 laptop, results in a black screen
> > > > > of death and a locked up laptop (no keyboard, mouse, or video).
> > > > > 
> > > > > A comparison of /etc/log/Xorg.0.log for r343566 (Xorg loads
> > > > > and functions) and r353467 (Xorg black screen of death) shows
> > > > > that /boot/modules/i915kms.ko loads correctly as the log
> > > > > files are identical.
> > > > > 
> > > > > Comparing dmesg for r343566 to r343567 shows the following
> > > > >  
> > > > > --- dmesg.343566  2019-02-20 08:13:07.727202000 -0800
> > > > > +++ dmesg.343567  2019-02-21 19:02:24.469562000 -0800
> > > > > @@ -3,11 +3,11 @@
> > > > >  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 13.0-CURRENT r343566 GENERIC i386
> > > > > +FreeBSD 13.0-CURRENT r343567 GENERIC i386
> > > > >  FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based 
> > > > > on LLVM 7.0.1)
> > > > >  WARNING: WITNESS option enabled, expect reduced performance.
> > > > >  VT(vga): resolution 640x480
> > > > > -CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.05-MHz 
> > > > > 686-class CPU)
> > > > > +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 
> > > > > 686-class CPU)
> > > > >Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13
> > > > >
> > > > > Features=0xbfebfbff
> > > > >
> > > > > Features2=0xe3bd
> > > > > @@ -16,7 +16,7 @@
> > > > >VT-x: (disabled in BIOS) HLT,PAUSE
> > > > >TSC: P-state invariant, performance statistics
> > > > >  real memory  = 4294967296 (4096 MB)
> > > > > -avail memory = 3639914496 (3471 MB)
> > > > > +avail memory = 4154175488 (3961 MB)
> > > > > 
> > > > > Somehow the r343567 kernel found an addition 490 MB of memory,
> > > > > which leads me to believe the after loading i915kms.ko there
> > > > > is some serious memory stomping issues.
> > > > > 
> > > > > I willing to do whatever is necessary to fix this issue (shorter
> > > > > of mailing the laptop to someone).  Is it possible to revert
> > > > > r343567 and move forward? 
> > > > > 
> > > > 
> > > > More info from sysctl.  With the "good" r343566, I see
> > > > 
> > > > vm.kmem_map_free: 1187033088
> > > > vm.kmem_map_size: 27234304
> > > > vm.kmem_size_scale: 3
> > > > vm.kmem_size_max: 1715470336
> > > > vm.kmem_size_min: 12582912
> > > > vm.kmem_zmax: 65536
> > > > vm.kmem_size: 1214267392
> > > > hw.physmem: 3714269184
> > > > hw.usermem: 3650867200
> > > > hw.realmem: 4294963200
> > > > 
> > > > With the problematic r343567, I see
> > > > 
> > > > vm.kmem_map_free: 1683152896
> > > > vm.kmem_map_size: 28123136
> > > > vm.kmem_size_scale: 1
> > > > vm.kmem_size_max: 1711276032
> > > > vm.kmem_size_min: 12582912
> > > > vm.kmem_zmax: 65536
> > > > vm.kmem_size: 1711276032
> > > > hw.physmem: 4252360704
> > > > hw.usermem: 4146999296
> > > > hw.realmem: 4294963200
> > > > 
> > > > Ideas?
> > > > 
> > > 
> > > Here's the 'diff -uw' between a verbose dmesg boot of r343566
> > > and dmesg boot of r343567.  The memory size looks rather puzzling.
> > > Can the people responsible for the i386 pmap.h merging take a
> > > look?
> > What is puzzling ?
> 
> Supposely, the laptop only has 4 GB of memory.  Not sure how
> it finds memory above 4 GB.

It probably has what is called UMA and the graphics
framebuffer is mapped into memory below 4G and the
original memory is mapped above 4G, giving you this
little bit of >4G memory that is trigger PAE now.

This may not be desired, is there any performance
advantage to not turning on PAE in this situation?

> I build 343566 and minimum ports needed for Xorg including
> drm-legacy-kmod.  I can load xorg, and in fact, I am typing
> this email now on the laptop with vi in xterm.
> 
> I build 343567 and minimum ports needed for Xorg including
> drm-legacy-kmod.  I try to start Xorg.  Black screen of death.
> No mouse.  No keyboard.  Just a hard reset.

That would be a regression caused by PAE coming into play.

> I build 343567 and minimum ports needed for Xorg including
> drm-legacy-kmod.  I load i915kms.ko, do not start Xorg.  There
> are surprising strikes/blotches of color on screen.  Building any
> port with the system's cc results in occasion segfaults. 
> 
> > 

Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Steve Kargl
On Sat, Feb 23, 2019 at 08:32:23AM -0800, Conrad Meyer wrote:
> On Sat, Feb 23, 2019 at 12:44 AM Steve Kargl
>  wrote:
> > Ideas?
> > ...
> > +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 
> > 686-class CPU)
> >Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13
> 
> https://ark.intel.com/content/www/us/en/ark/products/31728/intel-core-2-duo-processor-t7250-2m-cache-2-00-ghz-800-mhz-fsb.html
> 
> > Intel® Virtualization Technology (VT-x) ‡  Yes
> > Intel® 64 ‡   Yes
> 
> > Merom is the first Intel mobile processor to feature Intel 64 architecture.
> 
> So, as a workaround, maybe run amd64?

This is the only i386 FreeBSD system that I have.  This
is the system where all the libm changes I've made have
been tested.  i386 floating point is different than 
amd64 floating point.  See npx.c and the history of any
of the long double functions that I've worked on.  If
this laptop does not run i386, there will be no testing
of libm changes on the architecture.

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Steve Kargl
On Sat, Feb 23, 2019 at 11:19:31AM +0200, Konstantin Belousov wrote:
> On Fri, Feb 22, 2019 at 07:26:44PM -0800, Steve Kargl wrote:
> > On Thu, Feb 21, 2019 at 10:04:10PM -0800, Steve Kargl wrote:
> > > On Thu, Feb 21, 2019 at 07:39:25PM -0800, Steve Kargl wrote:
> > > > r343567 merges the PAE vs non-PAE pmap headers for i386
> > > > freebsd.  After bisection and dealing with the drm-legacy-kmod
> > > > fallout, I bisected /usr/src to r343567.  Building world and
> > > > a GENERIC kernel and the minimum set of ports to start Xorg
> > > > on my Dell Latitude D530 laptop, results in a black screen
> > > > of death and a locked up laptop (no keyboard, mouse, or video).
> > > > 
> > > > A comparison of /etc/log/Xorg.0.log for r343566 (Xorg loads
> > > > and functions) and r353467 (Xorg black screen of death) shows
> > > > that /boot/modules/i915kms.ko loads correctly as the log
> > > > files are identical.
> > > > 
> > > > Comparing dmesg for r343566 to r343567 shows the following
> > > >  
> > > > --- dmesg.3435662019-02-20 08:13:07.727202000 -0800
> > > > +++ dmesg.3435672019-02-21 19:02:24.469562000 -0800
> > > > @@ -3,11 +3,11 @@
> > > >  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 13.0-CURRENT r343566 GENERIC i386
> > > > +FreeBSD 13.0-CURRENT r343567 GENERIC i386
> > > >  FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on 
> > > > LLVM 7.0.1)
> > > >  WARNING: WITNESS option enabled, expect reduced performance.
> > > >  VT(vga): resolution 640x480
> > > > -CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.05-MHz 
> > > > 686-class CPU)
> > > > +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 
> > > > 686-class CPU)
> > > >Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13
> > > >
> > > > Features=0xbfebfbff
> > > >
> > > > Features2=0xe3bd
> > > > @@ -16,7 +16,7 @@
> > > >VT-x: (disabled in BIOS) HLT,PAUSE
> > > >TSC: P-state invariant, performance statistics
> > > >  real memory  = 4294967296 (4096 MB)
> > > > -avail memory = 3639914496 (3471 MB)
> > > > +avail memory = 4154175488 (3961 MB)
> > > > 
> > > > Somehow the r343567 kernel found an addition 490 MB of memory,
> > > > which leads me to believe the after loading i915kms.ko there
> > > > is some serious memory stomping issues.
> > > > 
> > > > I willing to do whatever is necessary to fix this issue (shorter
> > > > of mailing the laptop to someone).  Is it possible to revert
> > > > r343567 and move forward? 
> > > > 
> > > 
> > > More info from sysctl.  With the "good" r343566, I see
> > > 
> > > vm.kmem_map_free: 1187033088
> > > vm.kmem_map_size: 27234304
> > > vm.kmem_size_scale: 3
> > > vm.kmem_size_max: 1715470336
> > > vm.kmem_size_min: 12582912
> > > vm.kmem_zmax: 65536
> > > vm.kmem_size: 1214267392
> > > hw.physmem: 3714269184
> > > hw.usermem: 3650867200
> > > hw.realmem: 4294963200
> > > 
> > > With the problematic r343567, I see
> > > 
> > > vm.kmem_map_free: 1683152896
> > > vm.kmem_map_size: 28123136
> > > vm.kmem_size_scale: 1
> > > vm.kmem_size_max: 1711276032
> > > vm.kmem_size_min: 12582912
> > > vm.kmem_zmax: 65536
> > > vm.kmem_size: 1711276032
> > > hw.physmem: 4252360704
> > > hw.usermem: 4146999296
> > > hw.realmem: 4294963200
> > > 
> > > Ideas?
> > > 
> > 
> > Here's the 'diff -uw' between a verbose dmesg boot of r343566
> > and dmesg boot of r343567.  The memory size looks rather puzzling.
> > Can the people responsible for the i386 pmap.h merging take a
> > look?
> What is puzzling ?

Supposely, the laptop only has 4 GB of memory.  Not sure how
it finds memory above 4 GB.

I build 343566 and minimum ports needed for Xorg including
drm-legacy-kmod.  I can load xorg, and in fact, I am typing
this email now on the laptop with vi in xterm.

I build 343567 and minimum ports needed for Xorg including
drm-legacy-kmod.  I try to start Xorg.  Black screen of death.
No mouse.  No keyboard.  Just a hard reset.

I build 343567 and minimum ports needed for Xorg including
drm-legacy-kmod.  I load i915kms.ko, do not start Xorg.  There
are surprising strikes/blotches of color on screen.  Building any
port with the system's cc results in occasion segfaults. 

> When kernel boots in PAE mode, it can (and will) get a use for physical
> memory mapped above 4G.  I highlighted the SMAP entry which represents
> such memory, below.
> 
> kmem_scale was changed in the PAE commit, see the commit message for
> explanation.
> 

I read it multiple times.  It does not explain how to get the
old pre-343567 behavior where the laptop is usable.  It mentions
two new sysctl entities.  One is irrelevant as I don't have 24+ GB
of memory.  The other has this in the commit message:

There are two tunables added: hw.above4g_allow and ...,
the

Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Vladimir Kondratyev

On 2019-02-22 09:04, Steve Kargl wrote:


Ideas?


Place hw.above4g_allow=0 into /boot/loader.conf?

--
WBR
Vladimir Kondratyev
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Konstantin Belousov
On Fri, Feb 22, 2019 at 07:26:44PM -0800, Steve Kargl wrote:
> On Thu, Feb 21, 2019 at 10:04:10PM -0800, Steve Kargl wrote:
> > On Thu, Feb 21, 2019 at 07:39:25PM -0800, Steve Kargl wrote:
> > > r343567 merges the PAE vs non-PAE pmap headers for i386
> > > freebsd.  After bisection and dealing with the drm-legacy-kmod
> > > fallout, I bisected /usr/src to r343567.  Building world and
> > > a GENERIC kernel and the minimum set of ports to start Xorg
> > > on my Dell Latitude D530 laptop, results in a black screen
> > > of death and a locked up laptop (no keyboard, mouse, or video).
> > > 
> > > A comparison of /etc/log/Xorg.0.log for r343566 (Xorg loads
> > > and functions) and r353467 (Xorg black screen of death) shows
> > > that /boot/modules/i915kms.ko loads correctly as the log
> > > files are identical.
> > > 
> > > Comparing dmesg for r343566 to r343567 shows the following
> > >  
> > > --- dmesg.343566  2019-02-20 08:13:07.727202000 -0800
> > > +++ dmesg.343567  2019-02-21 19:02:24.469562000 -0800
> > > @@ -3,11 +3,11 @@
> > >  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 13.0-CURRENT r343566 GENERIC i386
> > > +FreeBSD 13.0-CURRENT r343567 GENERIC i386
> > >  FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on 
> > > LLVM 7.0.1)
> > >  WARNING: WITNESS option enabled, expect reduced performance.
> > >  VT(vga): resolution 640x480
> > > -CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.05-MHz 
> > > 686-class CPU)
> > > +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 
> > > 686-class CPU)
> > >Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13
> > >
> > > Features=0xbfebfbff
> > >
> > > Features2=0xe3bd
> > > @@ -16,7 +16,7 @@
> > >VT-x: (disabled in BIOS) HLT,PAUSE
> > >TSC: P-state invariant, performance statistics
> > >  real memory  = 4294967296 (4096 MB)
> > > -avail memory = 3639914496 (3471 MB)
> > > +avail memory = 4154175488 (3961 MB)
> > > 
> > > Somehow the r343567 kernel found an addition 490 MB of memory,
> > > which leads me to believe the after loading i915kms.ko there
> > > is some serious memory stomping issues.
> > > 
> > > I willing to do whatever is necessary to fix this issue (shorter
> > > of mailing the laptop to someone).  Is it possible to revert
> > > r343567 and move forward? 
> > > 
> > 
> > More info from sysctl.  With the "good" r343566, I see
> > 
> > vm.kmem_map_free: 1187033088
> > vm.kmem_map_size: 27234304
> > vm.kmem_size_scale: 3
> > vm.kmem_size_max: 1715470336
> > vm.kmem_size_min: 12582912
> > vm.kmem_zmax: 65536
> > vm.kmem_size: 1214267392
> > hw.physmem: 3714269184
> > hw.usermem: 3650867200
> > hw.realmem: 4294963200
> > 
> > With the problematic r343567, I see
> > 
> > vm.kmem_map_free: 1683152896
> > vm.kmem_map_size: 28123136
> > vm.kmem_size_scale: 1
> > vm.kmem_size_max: 1711276032
> > vm.kmem_size_min: 12582912
> > vm.kmem_zmax: 65536
> > vm.kmem_size: 1711276032
> > hw.physmem: 4252360704
> > hw.usermem: 4146999296
> > hw.realmem: 4294963200
> > 
> > Ideas?
> > 
> 
> Here's the 'diff -uw' between a verbose dmesg boot of r343566
> and dmesg boot of r343567.  The memory size looks rather puzzling.
> Can the people responsible for the i386 pmap.h merging take a
> look?
What is puzzling ?

When kernel boots in PAE mode, it can (and will) get a use for physical
memory mapped above 4G.  I highlighted the SMAP entry which represents
such memory, below.

kmem_scale was changed in the PAE commit, see the commit message for
explanation.

> 
> --- dmesg.343566.verbose  2019-02-22 19:08:33.458559000 -0800
> +++ dmesg.343567.verbose  2019-02-22 08:55:21.62331 -0800
> @@ -8,25 +8,25 @@
>  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 13.0-CURRENT r343566 GENERIC i386
> +FreeBSD 13.0-CURRENT r343567 GENERIC i386
>  FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on LLVM 
> 7.0.1)
>  WARNING: WITNESS option enabled, expect reduced performance.
>  VT(vga): resolution 640x480
> -Preloaded elf kernel "/boot/kernel/kernel" at 0x2501000.
> -Preloaded boot_entropy_cache "/boot/entropy" at 0x2509b20.
> -Preloaded elf module "/boot/kernel/cpuctl.ko" at 0x2509b6c.
> -Preloaded elf module "/boot/kernel/if_ath.ko" at 0x2509f68.
> -Preloaded elf module "/boot/kernel/ath_dfs.ko" at 0x250a314.
> -Preloaded elf module "/boot/kernel/ath_rate.ko" at 0x250a6c0.
> -Preloaded elf module "/boot/kernel/ath_hal_ar9300.ko" at 0x250aa70.
> -Preloaded elf module "/boot/kernel/ath_hal_ar5416.ko" at 0x250ae9c.
> -Preloaded elf module "/boot/kernel/ath_hal_ar5212.ko" at 0x250b2c8.
> -Preloaded elf module "/boot/kernel/ath_hal_a

Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-23 Thread Steve Kargl
On Thu, Feb 21, 2019 at 10:04:10PM -0800, Steve Kargl wrote:
> On Thu, Feb 21, 2019 at 07:39:25PM -0800, Steve Kargl wrote:
> > r343567 merges the PAE vs non-PAE pmap headers for i386
> > freebsd.  After bisection and dealing with the drm-legacy-kmod
> > fallout, I bisected /usr/src to r343567.  Building world and
> > a GENERIC kernel and the minimum set of ports to start Xorg
> > on my Dell Latitude D530 laptop, results in a black screen
> > of death and a locked up laptop (no keyboard, mouse, or video).
> > 
> > A comparison of /etc/log/Xorg.0.log for r343566 (Xorg loads
> > and functions) and r353467 (Xorg black screen of death) shows
> > that /boot/modules/i915kms.ko loads correctly as the log
> > files are identical.
> > 
> > Comparing dmesg for r343566 to r343567 shows the following
> >  
> > --- dmesg.3435662019-02-20 08:13:07.727202000 -0800
> > +++ dmesg.3435672019-02-21 19:02:24.469562000 -0800
> > @@ -3,11 +3,11 @@
> >  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 13.0-CURRENT r343566 GENERIC i386
> > +FreeBSD 13.0-CURRENT r343567 GENERIC i386
> >  FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on LLVM 
> > 7.0.1)
> >  WARNING: WITNESS option enabled, expect reduced performance.
> >  VT(vga): resolution 640x480
> > -CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.05-MHz 
> > 686-class CPU)
> > +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 
> > 686-class CPU)
> >Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13
> >
> > Features=0xbfebfbff
> >Features2=0xe3bd
> > @@ -16,7 +16,7 @@
> >VT-x: (disabled in BIOS) HLT,PAUSE
> >TSC: P-state invariant, performance statistics
> >  real memory  = 4294967296 (4096 MB)
> > -avail memory = 3639914496 (3471 MB)
> > +avail memory = 4154175488 (3961 MB)
> > 
> > Somehow the r343567 kernel found an addition 490 MB of memory,
> > which leads me to believe the after loading i915kms.ko there
> > is some serious memory stomping issues.
> > 
> > I willing to do whatever is necessary to fix this issue (shorter
> > of mailing the laptop to someone).  Is it possible to revert
> > r343567 and move forward? 
> > 
> 
> More info from sysctl.  With the "good" r343566, I see
> 
> vm.kmem_map_free: 1187033088
> vm.kmem_map_size: 27234304
> vm.kmem_size_scale: 3
> vm.kmem_size_max: 1715470336
> vm.kmem_size_min: 12582912
> vm.kmem_zmax: 65536
> vm.kmem_size: 1214267392
> hw.physmem: 3714269184
> hw.usermem: 3650867200
> hw.realmem: 4294963200
> 
> With the problematic r343567, I see
> 
> vm.kmem_map_free: 1683152896
> vm.kmem_map_size: 28123136
> vm.kmem_size_scale: 1
> vm.kmem_size_max: 1711276032
> vm.kmem_size_min: 12582912
> vm.kmem_zmax: 65536
> vm.kmem_size: 1711276032
> hw.physmem: 4252360704
> hw.usermem: 4146999296
> hw.realmem: 4294963200
> 
> Ideas?
> 

Here's the 'diff -uw' between a verbose dmesg boot of r343566
and dmesg boot of r343567.  The memory size looks rather puzzling.
Can the people responsible for the i386 pmap.h merging take a
look?

--- dmesg.343566.verbose2019-02-22 19:08:33.458559000 -0800
+++ dmesg.343567.verbose2019-02-22 08:55:21.62331 -0800
@@ -8,25 +8,25 @@
 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 13.0-CURRENT r343566 GENERIC i386
+FreeBSD 13.0-CURRENT r343567 GENERIC i386
 FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on LLVM 
7.0.1)
 WARNING: WITNESS option enabled, expect reduced performance.
 VT(vga): resolution 640x480
-Preloaded elf kernel "/boot/kernel/kernel" at 0x2501000.
-Preloaded boot_entropy_cache "/boot/entropy" at 0x2509b20.
-Preloaded elf module "/boot/kernel/cpuctl.ko" at 0x2509b6c.
-Preloaded elf module "/boot/kernel/if_ath.ko" at 0x2509f68.
-Preloaded elf module "/boot/kernel/ath_dfs.ko" at 0x250a314.
-Preloaded elf module "/boot/kernel/ath_rate.ko" at 0x250a6c0.
-Preloaded elf module "/boot/kernel/ath_hal_ar9300.ko" at 0x250aa70.
-Preloaded elf module "/boot/kernel/ath_hal_ar5416.ko" at 0x250ae9c.
-Preloaded elf module "/boot/kernel/ath_hal_ar5212.ko" at 0x250b2c8.
-Preloaded elf module "/boot/kernel/ath_hal_ar5211.ko" at 0x250b6f4.
-Preloaded elf module "/boot/kernel/ath_hal_ar5210.ko" at 0x250baf8.
+Preloaded elf kernel "/boot/kernel/kernel" at 0x2528000.
+Preloaded elf module "/boot/kernel/cpuctl.ko" at 0x2530b20.
+Preloaded boot_entropy_cache "/boot/entropy" at 0x2530f1c.
+Preloaded elf module "/boot/kernel/if_ath.ko" at 0x2530f68.
+Preloaded elf module "/boot/kernel/ath_dfs.ko" at 0x2531314.
+Preloaded elf module "/boot/kernel/ath_rate.ko" at 0x25316c0.
+Preloaded elf module "/boot/kernel/ath_hal_ar9300.ko" at 0x2531a70.
+Preloaded e

Re: r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-21 Thread Steve Kargl
On Thu, Feb 21, 2019 at 07:39:25PM -0800, Steve Kargl wrote:
> r343567 merges the PAE vs non-PAE pmap headers for i386
> freebsd.  After bisection and dealing with the drm-legacy-kmod
> fallout, I bisected /usr/src to r343567.  Building world and
> a GENERIC kernel and the minimum set of ports to start Xorg
> on my Dell Latitude D530 laptop, results in a black screen
> of death and a locked up laptop (no keyboard, mouse, or video).
> 
> A comparison of /etc/log/Xorg.0.log for r343566 (Xorg loads
> and functions) and r353467 (Xorg black screen of death) shows
> that /boot/modules/i915kms.ko loads correctly as the log
> files are identical.
> 
> Comparing dmesg for r343566 to r343567 shows the following
>  
> --- dmesg.343566  2019-02-20 08:13:07.727202000 -0800
> +++ dmesg.343567  2019-02-21 19:02:24.469562000 -0800
> @@ -3,11 +3,11 @@
>  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 13.0-CURRENT r343566 GENERIC i386
> +FreeBSD 13.0-CURRENT r343567 GENERIC i386
>  FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on LLVM 
> 7.0.1)
>  WARNING: WITNESS option enabled, expect reduced performance.
>  VT(vga): resolution 640x480
> -CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.05-MHz 686-class 
> CPU)
> +CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 686-class 
> CPU)
>Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13
>
> Features=0xbfebfbff
>Features2=0xe3bd
> @@ -16,7 +16,7 @@
>VT-x: (disabled in BIOS) HLT,PAUSE
>TSC: P-state invariant, performance statistics
>  real memory  = 4294967296 (4096 MB)
> -avail memory = 3639914496 (3471 MB)
> +avail memory = 4154175488 (3961 MB)
> 
> Somehow the r343567 kernel found an addition 490 MB of memory,
> which leads me to believe the after loading i915kms.ko there
> is some serious memory stomping issues.
> 
> I willing to do whatever is necessary to fix this issue (shorter
> of mailing the laptop to someone).  Is it possible to revert
> r343567 and move forward? 
> 

More info from sysctl.  With the "good" r343566, I see

vm.kmem_map_free: 1187033088
vm.kmem_map_size: 27234304
vm.kmem_size_scale: 3
vm.kmem_size_max: 1715470336
vm.kmem_size_min: 12582912
vm.kmem_zmax: 65536
vm.kmem_size: 1214267392
hw.physmem: 3714269184
hw.usermem: 3650867200
hw.realmem: 4294963200

With the problematic r343567, I see

vm.kmem_map_free: 1683152896
vm.kmem_map_size: 28123136
vm.kmem_size_scale: 1
vm.kmem_size_max: 1711276032
vm.kmem_size_min: 12582912
vm.kmem_zmax: 65536
vm.kmem_size: 1711276032
hw.physmem: 4252360704
hw.usermem: 4146999296
hw.realmem: 4294963200

Ideas?

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


r343567 aka PAE vs non-PAE merge breaks i386 freebsd

2019-02-21 Thread Steve Kargl
r343567 merges the PAE vs non-PAE pmap headers for i386
freebsd.  After bisection and dealing with the drm-legacy-kmod
fallout, I bisected /usr/src to r343567.  Building world and
a GENERIC kernel and the minimum set of ports to start Xorg
on my Dell Latitude D530 laptop, results in a black screen
of death and a locked up laptop (no keyboard, mouse, or video).

A comparison of /etc/log/Xorg.0.log for r343566 (Xorg loads
and functions) and r353467 (Xorg black screen of death) shows
that /boot/modules/i915kms.ko loads correctly as the log
files are identical.

Comparing dmesg for r343566 to r343567 shows the following
 
--- dmesg.3435662019-02-20 08:13:07.727202000 -0800
+++ dmesg.3435672019-02-21 19:02:24.469562000 -0800
@@ -3,11 +3,11 @@
 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 13.0-CURRENT r343566 GENERIC i386
+FreeBSD 13.0-CURRENT r343567 GENERIC i386
 FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on LLVM 
7.0.1)
 WARNING: WITNESS option enabled, expect reduced performance.
 VT(vga): resolution 640x480
-CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.05-MHz 686-class 
CPU)
+CPU: Intel(R) Core(TM)2 Duo CPU T7250  @ 2.00GHz (1995.04-MHz 686-class 
CPU)
   Origin="GenuineIntel"  Id=0x6fd  Family=0x6  Model=0xf  Stepping=13
   
Features=0xbfebfbff
   Features2=0xe3bd
@@ -16,7 +16,7 @@
   VT-x: (disabled in BIOS) HLT,PAUSE
   TSC: P-state invariant, performance statistics
 real memory  = 4294967296 (4096 MB)
-avail memory = 3639914496 (3471 MB)
+avail memory = 4154175488 (3961 MB)

Somehow the r343567 kernel found an addition 490 MB of memory,
which leads me to believe the after loading i915kms.ko there
is some serious memory stomping issues.

I willing to do whatever is necessary to fix this issue (shorter
of mailing the laptop to someone).  Is it possible to revert
r343567 and move forward? 

-- 
Steve
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"