On Tue, Feb 21, 2017 at 09:32:42PM -0800, Steve Kargl wrote: > Well, I found the guilty commit. r313934 breaks loading > either i915kms.ko or drm2.ko on a Dell Latitude D530 laptop. > details below. > > I'll also note that starting at r313902 or so, after > loading i915kms.ko console output on vt is slooooooow. > A simply 'time ls /usr/bin' reports 6.27 real, 4.00 user, > and 1.08 sys, but the drawing on screen takes more than > 30 seconds. One can painfully watch each line of output > be rastered across the screen. > > Kib you can read the details below. If you need more info, > ping me. I did notice that i686_mem.c used constants of the > form 0xffffULL prior to the merge into x86_mem.c. You now > use 0xfffUL. I have no idea whether this is related to > cause. Well, yes, I found two instances more of such bugs, one seems to be innocent, and another might be the issue. Please try this on top of r313934 or the latest HEAD. diff --git a/sys/x86/x86/x86_mem.c b/sys/x86/x86/x86_mem.c index 8e93883863a..d639224f840 100644 --- a/sys/x86/x86/x86_mem.c +++ b/sys/x86/x86/x86_mem.c _at__at_ -260,7 +260,7 _at__at_ x86_mrfetch(struct mem_range_softc *sc) /* Compute the range from the mask. Ick. */ mrd->mr_len = (~(msrv & mtrr_physmask) & - (mtrr_physmask | 0xfffL)) + 1; + (mtrr_physmask | 0xfffLL)) + 1; if (!mrvalid(mrd->mr_base, mrd->mr_len)) mrd->mr_flags |= MDF_BOGUS; _at__at_ -638,7 +638,7 _at__at_ x86_mrinit(struct mem_range_softc *sc) * Determine the size of the PhysMask and PhysBase fields in * the variable range MTRRs. */ - mtrr_physmask = (((uint64_t)1 << cpu_maxphyaddr) - 1) & ~0xfffUL; + mtrr_physmask = (((uint64_t)1 << cpu_maxphyaddr) - 1) & ~0xfffULL; /* If fixed MTRRs supported and enabled. */ if ((mtrrcap & MTRR_CAP_FIXED) && (mtrrdef & MTRR_DEF_FIXED_ENABLE)) {Received on Wed Feb 22 2017 - 05:08:08 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:10 UTC