linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.6.0-test2-mm3
@ 2003-08-02 22:22 Andrew Morton
  2003-08-02 22:31 ` 2.6.0-test2-mm3 bert hubert
                   ` (4 more replies)
  0 siblings, 5 replies; 23+ messages in thread
From: Andrew Morton @ 2003-08-02 22:22 UTC (permalink / raw)
  To: linux-kernel, linux-mm


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test2/2.6.0-test2-mm3/

. Con's CPU scheduler rework has been dropped out and Ingo's changes have
  been added.

  Con's changes demonstrated that additional infrastructure is needed to
  solve these problems correctly.  Ingo's patch adds those.  Con is
  continuing to rebase his work on these changes.

. Added Ingo's 4G/4G memory split patch.  It takes my kernel build from
  1:51 to 1:53 so gee.

  Big fat warning: whenever you change the value of CONFIG_X86_4G you will
  need to run a `make clean'.  Or just remove arch/i386/boot/setup.o.

  The build system seems to not notice that setup.S depends on
  CONFIG_X86_4G and the resulting kernel immediately triplefaults.

. A device mapper update.

. Several reiserfs bugfixes

. I don't think anyone has reported on whether 2.6.0-test2-mm2 fixed any
  PS/2 or synaptics problems.  You are all very bad.




Changes since 2.6.0-test2-mm2:


+linus.patch

 Latest Linus tree

-alsa-bk-2003-07-28.patch
-x86_64-merge.patch
-misc31.patch
-selinux.patch
-reslabify-pgds-and-pmds.patch
-buffer-debug.patch
-centrino-update.patch
-3c59x-pm-fix.patch
-dev_t-printing.patch
-rootdisk-parsing-fix.patch
-3c59x-eisa-fix.patch
-slab-reclaim-accounting-fix.patch
-stack-leak-fix.patch
-unlock_buffer-barrier.patch
-invalidate_mmap_range.patch
-buffer_io_error-readahead-fix.patch
-force_page_cache_readahead.patch
-truncate-pagefault-race-fix.patch
-truncate-pagefault-race-fix-fix.patch
-no_page-memory-barriers.patch
-ext3-elide-inode-block-reading.patch
-ext3_getblk-race-fix.patch
-ext3_write_super-speedup.patch
-alloc_bootmem_low_pages-ordering-fix.patch
-sis-drm-fix.patch
-soundcard-devfs-fix.patch
-6pack-hz-fix.patch
-devfs_lookup-revert-and-refix.patch
-write-mark_page_accessed.patch
-less-kswapd-throttling.patch
-zone-pressure.patch
-reclaim-mapped-pressure.patch
-xfs-dio-unwritten-extents.patch
-force-CONFIG_INPUT.patch
-ipt_helper-build-fix.patch
-select-xoffed-tty-fix.patch
-conntrack-build-fix.patch
-arcnet-typo-fix.patch
-ext3-commit-assertion-fix.patch
-read_dir-fix.patch
-blk_start_queue-fix.patch
-special_file-move.patch
-remove-queue_wait.patch
-uidhash-locking.patch
-osf-partition-handling.patch
-com20020_cs-build-fix.patch
-hdlc-build-fix.patch
-add-mandocs-target.patch
-binfmt_script-argv0-fix.patch
-bttv-driver-update.patch
-ppp-xon-xoff-handling.patch
-dac960-devfs-fix.patch
-dquot-typo-fix.patch
-i810-fix.patch
-intel-agp-oops-fix.patch
-export-agp_memory_reserved.patch
-pci_device_id-devinitdata.patch
-airo-fixes.patch
-ppc32-cpu-registration-fix.patch
-impi-build-fix.patch
-document-nfs-utils.patch
-untested-quota-fix.patch
-generic-hdlc-updates.patch
-stallion-devfs-fix.patch
-dm-rename-resume.patch
-serial-is-not-experimental.patch
-ftl-warning-fix.patch
-watchdog-module-param-fixes.patch

 merged

+execve-fixes.patch

 Fix exeve() emulation for various 64-bit architectures

+x86_64-cpumask_t-fix.patch

 Maybe fix x86_64 merge for cpumask_t

+ppc64-local.patch
+ppc64-sections.patch
+ppc64-sched_clock.patch
+ppc64-prom-compile-fix.patch

 Various ppc64 hacks to make it build and work.

-rcu-stats.patch

 Dropped.  rcu_grace_period.patch broke it.

+rcu-grace-period.patch

 Instrumentation to help solve the rcu-for-route-cache starvation problem.

-o1-interactivity.patch
-o2int.patch
-o3int.patch
-o4int.patch
-o5int-2.patch
-o6int.patch
-o6.1int.patch
-o7int.patch
-o8int.patch
-o9int.patch
-o10int.patch
-o11int.patch
-o11int.1.patch
-o11.2int.patch

 Dropped.

+sched-2.6.0-test2-mm2-A3.patch

 Ingo's CPu scheduler update.

+sched-warning-fix.patch

 Fix a warning in it.

+nforce2-acpi-fixes-fix.patch

 Fix for the fix for ACPI problems with the nforce chipset

+synaptics-mode-set.patch

 Fix old synaptics touchpads.

+4g-2.6.0-test2-mm2-A5.patch

 4G/4G split

+4g4g-cleanups.patch

 Tidy some warnings in it

+kgdb-4g4g-fix-2.patch

 Fix kgdb for 4G/4G

+4g4g-config-fix.patch

 Tidy up the config options.

+dm-1-module-param.patch
+dm-2-blk.patch
+dm-3-use-hex.patch
+dm-4-64-bit-ioctls.patch
+dm-5-missing-include.patch
+dm-6-sector_div.patch
+dm-7-rename-resume.patch

 Device mapper update

+reiserfs-savelinks-endianness-fix.patch
+reiserfs-enospc-fix.patch
+reiserfs-link-unlink-race-fix.patch

 Reiserfs fixes

+mremap-atomicity-fix.patch

 mremap() fix

+spurious-SIGCHLD-fix.patch

 signal fix

+aic7xxx_old-oops-fix.patch

 aic7xxx_old not real fix.

+ide-cd-oops-fix.patch

 Fix oops with ide-cd on end-of-disk errors.

+awe-core.patch
+awe-core-fixes.patch
+awe-use-gfp_flags.patch
+awe-use-gfp_flags-fixes.patch
+awe-fix-truncate-errors.patch
+awe-fix-truncate-errors-fixes.patch

 Report EIO and ENOSPC errors during async writeout to userspace.

+as-remove-hash-valid-stuff.patch

 Anticipatory scheduler leftovers

+usercopy-might_sleep-checks.patch

 might_sleep() checks in usercopy functions.



All 130 patches:

linus.patch
  cset-20030802_1915.txt.gz

mm.patch
  add -mmN to EXTRAVERSION

kgdb-ga.patch
  kgdb stub for ia32 (George Anzinger's one)

kgdb-remove-cpu_callout_map.patch
  kgdb: remove cpu_callout_map decls

kgdb-use-ggdb.patch

kgdb-ga-docco-fixes.patch
  kgdb doc. edits/corrections

execve-fixes.patch
  fix 64-bit architectures for the binprm change

cpumask_t-1.patch
  cpumask_t: allow more than BITS_PER_LONG CPUs
  cpumask_t fix for s390
  fix cpumask_t for s390
  Fix cpumask changes for x86_64
  fix cpumask_t for sparc64

cpumask_t-gcc-workaround-46.patch
  cpumask_t: more gcc workarounds

cpumask_t-gcc-workaround-47.patch
  cpumask_t gcc bug workarounds

cpumask-acpi-fix.patch
  cpumask_t: build fix

kgdb-cpumask_t.patch

x86_64-cpumask_t-fix.patch

config_spinline.patch
  uninline spinlocks for profiling accuracy.

ppc64-bar-0-fix.patch
  Allow PCI BARs that start at 0

ppc64-reloc_hide.patch

ppc64-semaphore-reimplementation.patch
  ppc64: use the ia32 semaphore implementation

ppc64-local.patch
  ppc64: local.h implementation

ppc64-sections.patch
  ppc64: implement sections.h

ppc64-sched_clock.patch
  ppc64: sched_clock()

ppc64-prom-compile-fix.patch
  ppc64: prom.c compile fix

sym-do-160.patch
  make the SYM driver do 160 MB/sec

ia64-percpu-revert.patch
  revert percpu changes

x86_64-fixes.patch
  x86_64 fixes

delay-ksoftirqd-fallback.patch
  Try harded in IRQ context before falling back to ksoftirqd

ds-09-vicam-usercopy-fix.patch
  vicam usercopy fix

rcu-grace-period.patch
  Monitor RCU grace period

mtrr-hang-fix.patch
  Fix mtrr-related hang

intel8x0-cleanup.patch
  intel8x0 cleanups

bio-too-big-fix.patch
  Fix raid "bio too big" failures

ppa-fix.patch
  ppc fix

linux-isp-2.patch

linux-isp-2-fix-again.patch
  lost feral fix

feral-bounce-fix.patch
  Feral driver - highmem issues

feral-bounce-fix-2.patch
  Feral driver bouncing fix

list_del-debug.patch
  list_del debug check

print-build-options-on-oops.patch
  print a few config options on oops

show_task-free-stack-fix.patch
  show_task() fix and cleanup

put_task_struct-debug.patch

ia32-mknod64.patch
  mknod64 for ia32

ext2-64-bit-special-inodes.patch
  ext2: support for 64-bit device nodes

ext3-64-bit-special-inodes.patch
  ext3: support for 64-bit device nodes

64-bit-dev_t-kdev_t.patch
  64-bit dev_t and kdev_t

64-bit-dev_t-other-archs.patch
  enable 64-bit dev_t for other archs

oops-dump-preceding-code.patch
  i386 oops output: dump preceding code

lockmeter.patch

printk-oops-mangle-fix.patch
  disentangle printk's whilst oopsing on SMP

20-odirect_enable.patch

21-odirect_cruft.patch

22-read_proc.patch

23-write_proc.patch

24-commit_proc.patch

25-odirect.patch

nfs-O_DIRECT-always-enabled.patch
  Force CONFIG_NFS_DIRECTIO

kjournald-PF_SYNCWRITE.patch

sched-2.6.0-test2-mm2-A3.patch
  sched-2.6.0-test2-mm2-A3

sched-warning-fix.patch

sched-balance-tuning.patch
  CPU scheduler balancing fix

ext3-block-allocation-cleanup.patch

nfs-revert-backoff.patch
  nfs: revert backoff changes

floppy-smp-fixes.patch
  floppy smp fixes

1000HZ-time-accuracy-fix.patch
  missing #if for 1000 HZ

signal-race-fix.patch
  signal handling race condition causing reboot hangs

vmscan-defer-writepage.patch
  vmscan: give dirty referenced pages another pass around the LRU

blacklist-asus-L3800C-dmi.patch
  add ASUS l3800P to DMI black list

nforce2-acpi-fixes.patch
  ACPI patch which fixes all my IRQ problems on nforce2

nforce2-acpi-fixes-fix.patch

remove-const-initdata.patch
  __initdata cant be marked const

timer-race-fixes.patch
  timer race fixes

local-apic-enable-fixes.patch
  Local APIC enable fixes

p00001_synaptics-restore-on-close.patch

p00002_psmouse-reset-timeout.patch

p00003_synaptics-multi-button.patch

p00004_synaptics-optional.patch

p00005_synaptics-pass-through.patch

p00006_psmouse-suspend-resume.patch

p00007_synaptics-old-proto.patch

synaptics-mode-set.patch
  Synaptics mode setting

bridge-notification-fix.patch
  Fix bridge notification processing

keyboard-resend-fix.patch
  keyboard resend fix

kobject-paranoia-checks.patch
  Driver core and kobject paranoia checks

4g-2.6.0-test2-mm2-A5.patch
  4G/4G split patch

4g4g-cleanups.patch

kgdb-4g4g-fix-2.patch

4g4g-config-fix.patch

dm-1-module-param.patch
  dm: don't use MODULE_PARM

dm-2-blk.patch
  dm: remove blk.h include

dm-3-use-hex.patch
  dm: decimal device num sscanf

dm-4-64-bit-ioctls.patch
  dm: 64 bit ioctl fixes

dm-5-missing-include.patch
  dm: missing #include

dm-6-sector_div.patch
  dm: use sector_div()

dm-7-rename-resume.patch
  dm: resume() name clash

reiserfs-savelinks-endianness-fix.patch
  reiserfs: fix savelinks on bigendian arches

reiserfs-enospc-fix.patch
  reiserfs: fix problem when fs is out of space

reiserfs-link-unlink-race-fix.patch
  reiserfs: fix races between link and unlink on same file

mremap-atomicity-fix.patch
  move_one_page() atomicity fix

spurious-SIGCHLD-fix.patch
  spurious SIGCHLD from dying thread group leader

aic7xxx_old-oops-fix.patch

ide-cd-oops-fix.patch
  ide-cd error handling oops fix

xfs-use-after-free-fix.patch
  XFS use-after-free fix

awe-core.patch
  async write errors: report truncate and io errors on async writes

awe-core-fixes.patch
  async write errors core: fixes

awe-use-gfp_flags.patch
  async write errors: use flags in address space

awe-use-gfp_flags-fixes.patch
  async write errors: mapping->flags fixes

awe-fix-truncate-errors.patch
  async write errors: fix spurious fs truncate errors

awe-fix-truncate-errors-fixes.patch
  async write errors: truncate handling fixes

as-remove-hash-valid-stuff.patch
  AS: remove hash valid stuff

usercopy-might_sleep-checks.patch
  might_sleep() checks for usercopy functions

aio-mm-refcounting-fix.patch
  fix /proc mm_struct refcounting bug

aio-01-retry.patch
  AIO: Core retry infrastructure

io_submit_one-EINVAL-fix.patch
  Fix aio process hang on EINVAL

aio-02-lockpage_wq.patch
  AIO: Async page wait

aio-03-fs_read.patch
  AIO: Filesystem aio read

aio-04-buffer_wq.patch
  AIO: Async buffer wait

aio-05-fs_write.patch
  AIO: Filesystem aio write

aio-05-fs_write-fix.patch

aio-06-bread_wq.patch
  AIO: Async block read

aio-06-bread_wq-fix.patch

aio-07-ext2getblk_wq.patch
  AIO: Async get block for ext2

O_SYNC-speedup-2.patch
  speed up O_SYNC writes

aio-09-o_sync.patch
  aio O_SYNC

aio-10-BUG-fix.patch
  AIO: fix a BUG

aio-11-workqueue-flush.patch
  AIO: flush workqueues before destroying ioctx'es

aio-12-readahead.patch
  AIO: readahead fixes

aio-dio-no-readahead.patch
  aio O_DIRECT no readahead

lock_buffer_wq-fix.patch
  lock_buffer_wq fix

unuse_mm-locked.patch
  AIO: hold the context lock across unuse_mm

aio-take-task_lock.patch
  From: Suparna Bhattacharya <suparna@in.ibm.com>
  Subject: Re: 2.5.72-mm1 - Under heavy testing with AIO,.. vmstat seems to blow the kernel

aio-O_SYNC-fix.patch
  Unify o_sync changes for aio and regular writes

aio-readahead-rework.patch
  Unified page range readahead for aio and regular reads




^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-02 22:22 2.6.0-test2-mm3 Andrew Morton
@ 2003-08-02 22:31 ` bert hubert
  2003-08-02 23:42   ` 2.6.0-test2-mm3 Andrew Morton
  2003-08-03  0:11 ` 2.6.0-test2-mm3 William Lee Irwin III
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 23+ messages in thread
From: bert hubert @ 2003-08-02 22:31 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Sat, Aug 02, 2003 at 03:22:02PM -0700, Andrew Morton wrote:

> . I don't think anyone has reported on whether 2.6.0-test2-mm2 fixed any
>   PS/2 or synaptics problems.  You are all very bad.

Will report 12 hours from now or so, I have synaptics problems currently.

> -selinux.patch
(...)
>  merged

Sure about this?

> +4g-2.6.0-test2-mm2-A5.patch
> 
>  4G/4G split

Linus called this patch 'tasteless' - do you see this being merged?

Thanks.

-- 
http://www.PowerDNS.com      Open source, database driven DNS Software 
http://lartc.org           Linux Advanced Routing & Traffic Control HOWTO

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-02 22:31 ` 2.6.0-test2-mm3 bert hubert
@ 2003-08-02 23:42   ` Andrew Morton
  2003-08-03  7:38     ` 2.6.0-test2-mm3 William Lee Irwin III
  2003-08-04 12:10     ` 2.6.0-test2-mm3 jlnance
  0 siblings, 2 replies; 23+ messages in thread
From: Andrew Morton @ 2003-08-02 23:42 UTC (permalink / raw)
  To: bert hubert; +Cc: linux-kernel

bert hubert <ahu@ds9a.nl> wrote:
>
> On Sat, Aug 02, 2003 at 03:22:02PM -0700, Andrew Morton wrote:
> 
> > . I don't think anyone has reported on whether 2.6.0-test2-mm2 fixed any
> >   PS/2 or synaptics problems.  You are all very bad.
> 
> Will report 12 hours from now or so, I have synaptics problems currently.
> 
> > -selinux.patch
> (...)
> >  merged
> 
> Sure about this?

yes.

> > +4g-2.6.0-test2-mm2-A5.patch
> > 
> >  4G/4G split
> 
> Linus called this patch 'tasteless' - do you see this being merged?

Bolting 64G of memory onto a 32-bit CPU is tasteless too...

We already have a bucketload of highmem hacks in the kernel, and they are
not sufficient for some people.  We have several more (large) highmem hacks
being proposed.

It is fairly clear that a number of users will need more highmem hacks than
we currenly have.  I'd rather add one more big highmem hack than a whole
bunch more little ones.  And I'd rather that the big highmem hack be in the
base kernel, rather than having different versions floating about in
different vendor trees.

It seems that 4G+4G is the most viable patch at this stage.  Wider testing
will tell.

I rather wish that the patch had been available a year ago, so we would now
have less little highmem hacks in the tree.

wrt long-term kernel purity: one approach would be to not merge 4G+4G into
2.7 at all.  This keeps the long-term kernel codebase saner.  It assumes
that the monster 32-bit boxes will have been obsoleted by 64-bit machines
within 3-4 years and that it is acceptable to end-of-line those machines on
a 2.6-based kernel.  I think that's pretty safe.


The main concern is that I don't want to see vendor kernels madly diverging
from the public kernel right at the outset of the 2.6 series.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-02 22:22 2.6.0-test2-mm3 Andrew Morton
  2003-08-02 22:31 ` 2.6.0-test2-mm3 bert hubert
@ 2003-08-03  0:11 ` William Lee Irwin III
  2003-08-03  2:14   ` 2.6.0-test2-mm3 William Lee Irwin III
  2003-08-03  1:49 ` 2.6.0-test2-mm3 Felipe Alfaro Solana
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 23+ messages in thread
From: William Lee Irwin III @ 2003-08-03  0:11 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Sat, Aug 02, 2003 at 03:22:02PM -0700, Andrew Morton wrote:
> . Added Ingo's 4G/4G memory split patch.  It takes my kernel build from
>   1:51 to 1:53 so gee.

No idea who, if anyone, listened last time I answered questions on
this. Sending in fixes shortly...


-- wli

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-02 22:22 2.6.0-test2-mm3 Andrew Morton
  2003-08-02 22:31 ` 2.6.0-test2-mm3 bert hubert
  2003-08-03  0:11 ` 2.6.0-test2-mm3 William Lee Irwin III
@ 2003-08-03  1:49 ` Felipe Alfaro Solana
  2003-08-03  2:00   ` 2.6.0-test2-mm3 Andrew Morton
  2003-08-03  5:07 ` 2.6.0-test2-mm3 Zwane Mwaikambo
  2003-08-03  7:05 ` 2.6.0-test2-mm3 Danek Duvall
  4 siblings, 1 reply; 23+ messages in thread
From: Felipe Alfaro Solana @ 2003-08-03  1:49 UTC (permalink / raw)
  To: Andrew Morton; +Cc: LKML, linux-mm

On Sun, 2003-08-03 at 00:22, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test2/2.6.0-test2-mm3/
> 
> . Con's CPU scheduler rework has been dropped out and Ingo's changes have
>   been added.

Why?


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  1:49 ` 2.6.0-test2-mm3 Felipe Alfaro Solana
@ 2003-08-03  2:00   ` Andrew Morton
  2003-08-03  2:03     ` 2.6.0-test2-mm3 Felipe Alfaro Solana
  0 siblings, 1 reply; 23+ messages in thread
From: Andrew Morton @ 2003-08-03  2:00 UTC (permalink / raw)
  To: Felipe Alfaro Solana; +Cc: linux-kernel, linux-mm

Felipe Alfaro Solana <felipe_alfaro@linuxmail.org> wrote:
>
> On Sun, 2003-08-03 at 00:22, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test2/2.6.0-test2-mm3/
> > 
> > . Con's CPU scheduler rework has been dropped out and Ingo's changes have
> >   been added.
> 
> Why?

Because of the other reasons which I mentioned?  We need additional
infrastructure such as the nanosecond timing to do this right.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  2:00   ` 2.6.0-test2-mm3 Andrew Morton
@ 2003-08-03  2:03     ` Felipe Alfaro Solana
  0 siblings, 0 replies; 23+ messages in thread
From: Felipe Alfaro Solana @ 2003-08-03  2:03 UTC (permalink / raw)
  To: Andrew Morton; +Cc: LKML, linux-mm

On Sun, 2003-08-03 at 04:00, Andrew Morton wrote:
> Felipe Alfaro Solana <felipe_alfaro@linuxmail.org> wrote:
> >
> > On Sun, 2003-08-03 at 00:22, Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test2/2.6.0-test2-mm3/
> > > 
> > > . Con's CPU scheduler rework has been dropped out and Ingo's changes have
> > >   been added.
> > 
> > Why?
> 
> Because of the other reasons which I mentioned?  We need additional
> infrastructure such as the nanosecond timing to do this right.

That's what happens when one doesn't read carefully an e-mail message.
Thanks, Andrew...


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  0:11 ` 2.6.0-test2-mm3 William Lee Irwin III
@ 2003-08-03  2:14   ` William Lee Irwin III
  0 siblings, 0 replies; 23+ messages in thread
From: William Lee Irwin III @ 2003-08-03  2:14 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel, linux-mm

On Sat, Aug 02, 2003 at 03:22:02PM -0700, Andrew Morton wrote:
>> . Added Ingo's 4G/4G memory split patch.  It takes my kernel build from
>>   1:51 to 1:53 so gee.

On Sat, Aug 02, 2003 at 05:11:19PM -0700, William Lee Irwin III wrote:
> No idea who, if anyone, listened last time I answered questions on
> this. Sending in fixes shortly...

Alright, let's get people an idea of what I'm talking about:

(a) pgd_ctor() is called once per pgd _object_, not once per page.
	The code as posted does list_add() to the same page during
	the ctor calls, and list_del() to the same page during dtor
	calls when PAE is configured, for the precise reason that
	there are multiple PAE pgd's per page. This is why mbligh hit
	list poison. This patch restores the check for PTRS_PER_PMD == 1
	in order to avoid oopsing on list poison.

(b) The entire pgd_ctor business (apart from the AGP fix, which was
	actually no longer necessary once the rest was backed out) was
	essentially backed out, since all preconstruction was backed out.
	This restores the world to doing preconstruction as it should.

(c) clear_page_tables() only clears _userspace_ pmd's; pgd_free() isn't
	clearing the trampoline pmd entries for the kernel pmd. This
	patch separates out a slab for kernel pmd's to enforce the
	separation (or otherwise bitblitting) _required_ by slab
	preconstruction invariants and so fixes bad pmd bugs (I suppose
	no one's reported them yet; perhaps not enough pmd_bad() checks
	are around to catch them all or the ordering of allocations and
	frees tends to be just right to avoid it for some odd reason).

(d) The #ifdef-lessness was backed out. Since everything else had to be
	rearranged, this patch restores the #ifdef-lessness for free.
	(This is actually a moderately useful property, since it means
	all cases get compiletested regardless of .config).

(e) Either PAE or XKVA is enough to dodge needing pgd_lock and pgd_list
	entirely. Don't touch them in those cases.

So the below is what it should actually look like. I didn't bother
waiting to test because there's a whole matrix to run through and that's
going to take ages, and apparently something needs to be out there to
demonstrate the right way to do this faster than that.

Yes, I'm testing (and bugfixing) the below myself.


-- wli


diff -prauN mm3-2.6.0-test2-1/arch/i386/mm/init.c mm3-2.6.0-test2-2/arch/i386/mm/init.c
--- mm3-2.6.0-test2-1/arch/i386/mm/init.c	2003-08-02 16:40:15.000000000 -0700
+++ mm3-2.6.0-test2-2/arch/i386/mm/init.c	2003-08-02 18:53:47.000000000 -0700
@@ -515,11 +515,13 @@ void __init mem_init(void)
 	load_LDT(&init_mm.context);
 }
 
-kmem_cache_t *pgd_cache;
-kmem_cache_t *pmd_cache;
+kmem_cache_t *pgd_cache, *pmd_cache, *kpmd_cache;
 
 void __init pgtable_cache_init(void)
 {
+	void (*ctor)(void *, kmem_cache_t *, unsigned long);
+	void (*dtor)(void *, kmem_cache_t *, unsigned long);
+
 	if (PTRS_PER_PMD > 1) {
 		pmd_cache = kmem_cache_create("pmd",
 					PTRS_PER_PMD*sizeof(pmd_t),
@@ -529,13 +531,36 @@ void __init pgtable_cache_init(void)
 					NULL);
 		if (!pmd_cache)
 			panic("pgtable_cache_init(): cannot create pmd cache");
+
+		if (TASK_SIZE > PAGE_OFFSET) {
+			kpmd_cache = kmem_cache_create("kpmd",
+					PTRS_PER_PMD*sizeof(pmd_t),
+					0,
+					SLAB_HWCACHE_ALIGN | SLAB_MUST_HWCACHE_ALIGN,
+					kpmd_ctor,
+					NULL);
+			if (!kpmd_cache)
+				panic("pgtable_cache_init(): "
+						"cannot create kpmd cache");
+		}
 	}
+
+	if (PTRS_PER_PMD == 1 || TASK_SIZE <= PAGE_OFFSET)
+		ctor = pgd_ctor;
+	else
+		ctor = NULL;
+
+	if (PTRS_PER_PMD == 1 && TASK_SIZE <= PAGE_OFFSET)
+		dtor = pgd_dtor;
+	else
+		dtor = NULL;
+
 	pgd_cache = kmem_cache_create("pgd",
 				PTRS_PER_PGD*sizeof(pgd_t),
 				0,
 				SLAB_HWCACHE_ALIGN | SLAB_MUST_HWCACHE_ALIGN,
-				pgd_ctor,
-				pgd_dtor);
+				ctor,
+				dtor);
 	if (!pgd_cache)
 		panic("pgtable_cache_init(): Cannot create pgd cache");
 }
diff -prauN mm3-2.6.0-test2-1/arch/i386/mm/pgtable.c mm3-2.6.0-test2-2/arch/i386/mm/pgtable.c
--- mm3-2.6.0-test2-1/arch/i386/mm/pgtable.c	2003-08-02 16:40:15.000000000 -0700
+++ mm3-2.6.0-test2-2/arch/i386/mm/pgtable.c	2003-08-02 18:53:36.000000000 -0700
@@ -158,6 +158,17 @@ void pmd_ctor(void *pmd, kmem_cache_t *c
 	memset(pmd, 0, PTRS_PER_PMD*sizeof(pmd_t));
 }
 
+void kpmd_ctor(void *__pmd, kmem_cache_t *cache, unsigned long flags)
+{
+	pmd_t *kpmd, *pmd;
+	kpmd = pmd_offset(&swapper_pg_dir[PTRS_PER_PGD-1],
+				(PTRS_PER_PMD - NR_SHARED_PMDS)*PMD_SIZE);
+	pmd = (pmd_t *)__pmd + (PTRS_PER_PMD - NR_SHARED_PMDS);
+				
+	memset(__pmd, 0, (PTRS_PER_PMD - NR_SHARED_PMDS)*sizeof(pmd_t));
+	memcpy(pmd, kpmd, NR_SHARED_PMDS*sizeof(pmd_t));
+}
+
 /*
  * List of all pgd's needed so it can invalidate entries in both cached
  * and uncached pgd's. This is essentially codepath-based locking
@@ -169,21 +180,60 @@ void pmd_ctor(void *pmd, kmem_cache_t *c
  * could be used. The locking scheme was chosen on the basis of
  * manfred's recommendations and having no core impact whatsoever.
  * -- wli
+ *
+ * The entire issue goes away when XKVA is configured.
  */
 spinlock_t pgd_lock = SPIN_LOCK_UNLOCKED;
 LIST_HEAD(pgd_list);
 
+/*
+ * This is not that hard to figure out.
+ * (a) PTRS_PER_PMD == 1 means non-PAE.
+ * (b) PTRS_PER_PMD > 1 means PAE.
+ * (c) TASK_SIZE > PAGE_OFFSET means XKVA.
+ * (d) TASK_SIZE <= PAGE_OFFSET means non-XKVA.
+ *
+ * Do *NOT* back out the preconstruction like the patch I'm cleaning
+ * up after this very instant did, or at all, for that matter.
+ * This is never called when PTRS_PER_PMD > 1 && TASK_SIZE > PAGE_OFFSET.
+ * -- wli
+ */
 void pgd_ctor(void *__pgd, kmem_cache_t *cache, unsigned long unused)
 {
+	pgd_t *pgd = (pgd_t *)__pgd;
 	unsigned long flags;
-	pgd_t *pgd0 = __pgd;
 
-	spin_lock_irqsave(&pgd_lock, flags);
-	list_add(&virt_to_page(pgd0)->lru, &pgd_list);
-	spin_unlock_irqrestore(&pgd_lock, flags);
+	if (PTRS_PER_PMD == 1) {
+		if (TASK_SIZE <= PAGE_OFFSET)
+			spin_lock_irqsave(&pgd_lock, flags);
+		else
+ 			memcpy(&pgd[PTRS_PER_PGD - NR_SHARED_PMDS],
+ 				&swapper_pg_dir[PTRS_PER_PGD - NR_SHARED_PMDS],
+ 				NR_SHARED_PMDS * sizeof(pgd_t));
+	}
+
+	if (TASK_SIZE <= PAGE_OFFSET)
+ 		memcpy(pgd + USER_PTRS_PER_PGD,
+ 			swapper_pg_dir + USER_PTRS_PER_PGD,
+ 			(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
+
+	if (PTRS_PER_PMD > 1)
+		return;
+
+	if (TASK_SIZE > PAGE_OFFSET)
+		memset(pgd, 0, (PTRS_PER_PGD - NR_SHARED_PMDS)*sizeof(pgd_t));
+	else {
+		list_add(&virt_to_page(pgd)->lru, &pgd_list);
+		spin_unlock_irqrestore(&pgd_lock, flags);
+		memset(pgd, 0, USER_PTRS_PER_PGD*sizeof(pgd_t));
+	}
 }
 
-/* never called when PTRS_PER_PMD > 1 */
+/*
+ * Never called when PTRS_PER_PMD > 1 || TASK_SIZE > PAGE_OFFSET
+ * for with PAE we would list_del() multiple times, and for non-PAE
+ * with XKVA all the AGP pgd shootdown code is unnecessary.
+ */
 void pgd_dtor(void *pgd, kmem_cache_t *cache, unsigned long unused)
 {
 	unsigned long flags; /* can be called from interrupt context */
@@ -193,87 +243,80 @@ void pgd_dtor(void *pgd, kmem_cache_t *c
 	spin_unlock_irqrestore(&pgd_lock, flags);
 }
 
-#ifdef CONFIG_X86_PAE
-
+/*
+ * See the comments above pgd_ctor() wrt. preconstruction.
+ * Do *NOT* memcpy() here. If you do, you back out important
+ * anti- cache pollution code.
+ * 
+ */
 pgd_t *pgd_alloc(struct mm_struct *mm)
 {
 	int i;
 	pgd_t *pgd = kmem_cache_alloc(pgd_cache, GFP_KERNEL);
 
-	if (pgd) {
-#ifdef CONFIG_X86_4G_VM_LAYOUT
-		pmd_t *pmd0, *kernel_pmd0;
-#endif
-		pmd_t *pmd;
+	if (PTRS_PER_PMD == 1 || !pgd)
+		return pgd;
 
-		for (i = 0; i < USER_PTRS_PER_PGD; ++i) {
-			pmd = kmem_cache_alloc(pmd_cache, GFP_KERNEL);
-			if (!pmd)
-				goto out_oom;
-			set_pgd(&pgd[i], __pgd(1 + __pa((u64)((u32)pmd))));
-		}
+	/*
+	 * In the 4G userspace case alias the top 16 MB virtual
+	 * memory range into the user mappings as well (these
+	 * include the trampoline and CPU data structures).
+	 */
+	for (i = 0; i < USER_PTRS_PER_PGD; ++i) {
+		kmem_cache_t *cache;
+		pmd_t *pmd;
 
-#ifdef CONFIG_X86_4G_VM_LAYOUT
-		/*
-		 * In the 4G userspace case alias the top 16 MB virtual
-		 * memory range into the user mappings as well (these
-		 * include the trampoline and CPU data structures).
-		 */
-		pmd0 = pmd;
-		kernel_pmd0 = (pmd_t *)__va(pgd_val(swapper_pg_dir[PTRS_PER_PGD-1]) & PAGE_MASK);
-		memcpy(pmd0 + PTRS_PER_PMD - NR_SHARED_PMDS, kernel_pmd0 + PTRS_PER_PMD - NR_SHARED_PMDS, sizeof(pmd_t) * NR_SHARED_PMDS);
-#else
-		memcpy(pgd + USER_PTRS_PER_PGD,
-			swapper_pg_dir + USER_PTRS_PER_PGD,
-			(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
-#endif
+		if (TASK_SIZE > PAGE_OFFSET && i == USER_PTRS_PER_PGD - 1)
+			cache = kpmd_cache;
+		else
+			cache = pmd_cache;
+
+		pmd = kmem_cache_alloc(cache, GFP_KERNEL);
+		if (!pmd)
+			goto out_oom;
+		set_pgd(&pgd[i], __pgd(1 + __pa((u64)((u32)pmd))));
 	}
+
 	return pgd;
 out_oom:
+	/*
+	 * we don't have to handle the kpmd_cache here, since it's the
+	 * last allocation, and has either nothing to free or when it
+	 * succeeds the whole operation succeeds.
+	 */
 	for (i--; i >= 0; i--)
 		kmem_cache_free(pmd_cache, (void *)__va(pgd_val(pgd[i])-1));
 	kmem_cache_free(pgd_cache, pgd);
 	return NULL;
 }
 
-#else /* ! PAE */
-
-pgd_t *pgd_alloc(struct mm_struct *mm)
-{
-	pgd_t *pgd = kmem_cache_alloc(pgd_cache, GFP_KERNEL);
-
-	if (pgd) {
-#ifdef CONFIG_X86_4G_VM_LAYOUT
-		memset(pgd, 0, PTRS_PER_PGD * sizeof(pgd_t));
-		/*
-		 * In the 4G userspace case alias the top 16 MB virtual
-		 * memory range into the user mappings as well (these
-		 * include the trampoline and CPU data structures).
-		 */
- 		memcpy(pgd + PTRS_PER_PGD-NR_SHARED_PMDS,
- 			swapper_pg_dir + PTRS_PER_PGD-NR_SHARED_PMDS,
- 			NR_SHARED_PMDS * sizeof(pgd_t));
-#else
- 		memset(pgd, 0, USER_PTRS_PER_PGD * sizeof(pgd_t));
- 		memcpy(pgd + USER_PTRS_PER_PGD,
- 			swapper_pg_dir + USER_PTRS_PER_PGD,
- 			(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
-#endif
-	}
-	return pgd;
-}
-
-#endif /* CONFIG_X86_PAE */
-
 void pgd_free(pgd_t *pgd)
 {
 	int i;
 
-	/* in the PAE case user pgd entries are overwritten before usage */
-	if (PTRS_PER_PMD > 1)
-		for (i = 0; i < USER_PTRS_PER_PGD; ++i)
-			kmem_cache_free(pmd_cache, (void *)__va(pgd_val(pgd[i])-1));
 	/* in the non-PAE case, clear_page_tables() clears user pgd entries */
+	if (PTRS_PER_PMD == 1)
+		goto out_free;
+
+	/* in the PAE case user pgd entries are overwritten before usage */
+	for (i = 0; i < USER_PTRS_PER_PGD; ++i) {
+		kmem_cache_t *cache;
+		pmd_t *pmd = __va(pgd_val(pgd[i]) - 1);
+
+		/*
+		 * only userspace pmd's are cleared for us
+		 * by mm/memory.c; it's a slab cache invariant
+		 * that we must separate the kernel pmd slab
+		 * all times, else we'll have bad pmd's.
+		 */
+		if (TASK_SIZE > PAGE_OFFSET && i == USER_PTRS_PER_PGD - 1)
+			cache = kpmd_cache;
+		else
+			cache = pmd_cache;
+
+		kmem_cache_free(cache, pmd);
+	}
+out_free:
 	kmem_cache_free(pgd_cache, pgd);
 }
 
diff -prauN mm3-2.6.0-test2-1/include/asm-i386/pgtable.h mm3-2.6.0-test2-2/include/asm-i386/pgtable.h
--- mm3-2.6.0-test2-1/include/asm-i386/pgtable.h	2003-08-02 16:40:24.000000000 -0700
+++ mm3-2.6.0-test2-2/include/asm-i386/pgtable.h	2003-08-02 18:29:46.000000000 -0700
@@ -32,12 +32,12 @@
 #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
 extern unsigned long empty_zero_page[1024];
 extern pgd_t swapper_pg_dir[1024];
-extern kmem_cache_t *pgd_cache;
-extern kmem_cache_t *pmd_cache;
+extern kmem_cache_t *pgd_cache, *pmd_cache, *kpmd_cache;
 extern spinlock_t pgd_lock;
 extern struct list_head pgd_list;
 
 void pmd_ctor(void *, kmem_cache_t *, unsigned long);
+void kpmd_ctor(void *, kmem_cache_t *, unsigned long);
 void pgd_ctor(void *, kmem_cache_t *, unsigned long);
 void pgd_dtor(void *, kmem_cache_t *, unsigned long);
 void pgtable_cache_init(void);

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-02 22:22 2.6.0-test2-mm3 Andrew Morton
                   ` (2 preceding siblings ...)
  2003-08-03  1:49 ` 2.6.0-test2-mm3 Felipe Alfaro Solana
@ 2003-08-03  5:07 ` Zwane Mwaikambo
  2003-08-03  5:28   ` 2.6.0-test2-mm3 Andrew Morton
  2003-08-03  7:05 ` 2.6.0-test2-mm3 Danek Duvall
  4 siblings, 1 reply; 23+ messages in thread
From: Zwane Mwaikambo @ 2003-08-03  5:07 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Sat, 2 Aug 2003, Andrew Morton wrote:

> . I don't think anyone has reported on whether 2.6.0-test2-mm2 fixed any
>   PS/2 or synaptics problems.  You are all very bad.

It works now by disabling CONFIG_MOUSE_PS2_SYNAPTICS

Thanks,
	Zwane


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  5:28   ` 2.6.0-test2-mm3 Andrew Morton
@ 2003-08-03  5:22     ` Zwane Mwaikambo
  2003-08-03  5:38       ` 2.6.0-test2-mm3 Joshua Kwan
  2003-08-03  5:48       ` 2.6.0-test2-mm3 Zwane Mwaikambo
  0 siblings, 2 replies; 23+ messages in thread
From: Zwane Mwaikambo @ 2003-08-03  5:22 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Sat, 2 Aug 2003, Andrew Morton wrote:

> Zwane Mwaikambo <zwane@arm.linux.org.uk> wrote:
> >
> > On Sat, 2 Aug 2003, Andrew Morton wrote:
> > 
> > > . I don't think anyone has reported on whether 2.6.0-test2-mm2 fixed any
> > >   PS/2 or synaptics problems.  You are all very bad.
> > 
> > It works now by disabling CONFIG_MOUSE_PS2_SYNAPTICS
> > 
> 
> err, that's a bug isn't it?

I've had a hard time following the saga behind the synaptics code. I know 
there is some external thing you have to download but never got round to 
doing it. I'll give that a go now too with CONFIG_MOUSE_PS2_SYNAPTICS. 
Colour me lazy...

-- 
function.linuxpower.ca

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  5:07 ` 2.6.0-test2-mm3 Zwane Mwaikambo
@ 2003-08-03  5:28   ` Andrew Morton
  2003-08-03  5:22     ` 2.6.0-test2-mm3 Zwane Mwaikambo
  0 siblings, 1 reply; 23+ messages in thread
From: Andrew Morton @ 2003-08-03  5:28 UTC (permalink / raw)
  To: Zwane Mwaikambo; +Cc: linux-kernel, linux-mm

Zwane Mwaikambo <zwane@arm.linux.org.uk> wrote:
>
> On Sat, 2 Aug 2003, Andrew Morton wrote:
> 
> > . I don't think anyone has reported on whether 2.6.0-test2-mm2 fixed any
> >   PS/2 or synaptics problems.  You are all very bad.
> 
> It works now by disabling CONFIG_MOUSE_PS2_SYNAPTICS
> 

err, that's a bug isn't it?

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  5:22     ` 2.6.0-test2-mm3 Zwane Mwaikambo
@ 2003-08-03  5:38       ` Joshua Kwan
  2003-08-03  5:48       ` 2.6.0-test2-mm3 Zwane Mwaikambo
  1 sibling, 0 replies; 23+ messages in thread
From: Joshua Kwan @ 2003-08-03  5:38 UTC (permalink / raw)
  To: Zwane Mwaikambo; +Cc: linux-mm, linux-kernel mailing list

[-- Attachment #1: Type: text/plain, Size: 924 bytes --]

On Sun, Aug 03, 2003 at 01:22:51AM -0400, Zwane Mwaikambo wrote:
> > > It works now by disabling CONFIG_MOUSE_PS2_SYNAPTICS
> > > 
> > 
> > err, that's a bug isn't it?
> 
> I've had a hard time following the saga behind the synaptics code. I know 
> there is some external thing you have to download but never got round to 
> doing it. I'll give that a go now too with CONFIG_MOUSE_PS2_SYNAPTICS. 
> Colour me lazy...

I really don't understand the point behind the synaptics code. I would
have imagined it to be an extension to the generic PS/2 code that would
finally allow me to use my 'scroll buttons' on my trackpad, but it has
caused nothing but problems. and I'm also kind of a console jockey so I
really need GPM working, which is why i'm always booting with
psmouse_noext these days...

-Josh

-- 
Using words to describe magic is like using a screwdriver to cut roast beef.
		-- Tom Robbins

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  5:22     ` 2.6.0-test2-mm3 Zwane Mwaikambo
  2003-08-03  5:38       ` 2.6.0-test2-mm3 Joshua Kwan
@ 2003-08-03  5:48       ` Zwane Mwaikambo
  1 sibling, 0 replies; 23+ messages in thread
From: Zwane Mwaikambo @ 2003-08-03  5:48 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Sun, 3 Aug 2003, Zwane Mwaikambo wrote:

> > err, that's a bug isn't it?
> 
> I've had a hard time following the saga behind the synaptics code. I know 
> there is some external thing you have to download but never got round to 
> doing it. I'll give that a go now too with CONFIG_MOUSE_PS2_SYNAPTICS. 
> Colour me lazy...

Ok after downloading the XFree86 driver and enabling 
CONFIG_MOUSE_PS2_SYNAPTICS everything is peachy, plus i get to use the 
scroll buttons.

So its confirmed working on my formerly 'broken' setup.

Thanks,
	Zwane


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-02 22:22 2.6.0-test2-mm3 Andrew Morton
                   ` (3 preceding siblings ...)
  2003-08-03  5:07 ` 2.6.0-test2-mm3 Zwane Mwaikambo
@ 2003-08-03  7:05 ` Danek Duvall
  2003-08-03  7:15   ` 2.6.0-test2-mm3 Eugene Teo
  4 siblings, 1 reply; 23+ messages in thread
From: Danek Duvall @ 2003-08-03  7:05 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Sat, Aug 02, 2003 at 03:22:02PM -0700, Andrew Morton wrote:

> . I don't think anyone has reported on whether 2.6.0-test2-mm2 fixed any
>   PS/2 or synaptics problems.  You are all very bad.

I tried it on my Fujitsu P2120, hoping that the PS/2 resume patch would
help it wake up from S3 properly, but no such luck.  The radeon
framebuffer doesn't restore, and the keyboard doesn't work.  The mouse
might, but there's no way for me to tell.

If I remember correctly, the network functioned properly on resume in
test1-mm2, but doesn't in test2-mm3, so I had to do a reset.

Danek

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  7:05 ` 2.6.0-test2-mm3 Danek Duvall
@ 2003-08-03  7:15   ` Eugene Teo
  2003-08-03  7:28     ` 2.6.0-test2-mm3 Danek Duvall
  0 siblings, 1 reply; 23+ messages in thread
From: Eugene Teo @ 2003-08-03  7:15 UTC (permalink / raw)
  To: Danek Duvall, Andrew Morton, linux-kernel, linux-mm

<quote sender="Danek Duvall">
> On Sat, Aug 02, 2003 at 03:22:02PM -0700, Andrew Morton wrote:
> 
> > . I don't think anyone has reported on whether 2.6.0-test2-mm2 fixed any
> >   PS/2 or synaptics problems.  You are all very bad.
> 
> I tried it on my Fujitsu P2120, hoping that the PS/2 resume patch would
> help it wake up from S3 properly, but no such luck.  The radeon
> framebuffer doesn't restore, and the keyboard doesn't work.  The mouse
> might, but there's no way for me to tell.
> 
> If I remember correctly, the network functioned properly on resume in
> test1-mm2, but doesn't in test2-mm3, so I had to do a reset.

does your logs say that network is not functioning, yet syslog seems to
be running all these while? did you use a radeontool to "off" your lcd
screen? fyi, I am using Fujitsu E-7010.

Eugene


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  7:15   ` 2.6.0-test2-mm3 Eugene Teo
@ 2003-08-03  7:28     ` Danek Duvall
  2003-08-03  7:44       ` 2.6.0-test2-mm3 Eugene Teo
  0 siblings, 1 reply; 23+ messages in thread
From: Danek Duvall @ 2003-08-03  7:28 UTC (permalink / raw)
  To: Eugene Teo; +Cc: Andrew Morton, linux-kernel, linux-mm

On Sun, Aug 03, 2003 at 03:15:20PM +0800, Eugene Teo wrote:

> does your logs say that network is not functioning, yet syslog seems
> to be running all these while? did you use a radeontool to "off" your
> lcd screen? fyi, I am using Fujitsu E-7010.

There's nothing in my logs at all, so there's no way to tell what, if
anything, survived the resume.  I'm not using radeontool; I hadn't even
been aware of it until now.

Danek

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-02 23:42   ` 2.6.0-test2-mm3 Andrew Morton
@ 2003-08-03  7:38     ` William Lee Irwin III
  2003-08-04 12:10     ` 2.6.0-test2-mm3 jlnance
  1 sibling, 0 replies; 23+ messages in thread
From: William Lee Irwin III @ 2003-08-03  7:38 UTC (permalink / raw)
  To: Andrew Morton; +Cc: bert hubert, linux-kernel

On Sat, Aug 02, 2003 at 04:42:05PM -0700, Andrew Morton wrote:
> We already have a bucketload of highmem hacks in the kernel, and they are
> not sufficient for some people.  We have several more (large) highmem hacks
> being proposed.

Please don't put page clustering anywhere near that blacklist. There's
a lot more to it than "gee, wli shrank mem_map[] again".


On Sat, Aug 02, 2003 at 04:42:05PM -0700, Andrew Morton wrote:
> wrt long-term kernel purity: one approach would be to not merge 4G+4G into
> 2.7 at all.  This keeps the long-term kernel codebase saner.  It assumes
> that the monster 32-bit boxes will have been obsoleted by 64-bit machines
> within 3-4 years and that it is acceptable to end-of-line those machines on
> a 2.6-based kernel.  I think that's pretty safe.

Maybe some way to get feedback to/from cpu vendors about this would
help. If we really want to kill highmem dead in 2.7, beating cpu
vendors with a baseball bat until they^W^W^W^W^W^W^W^Wkindly asking
cpu vendors to kill that fucking PAE shit dead (goddammit!) might help.


-- wli

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  7:28     ` 2.6.0-test2-mm3 Danek Duvall
@ 2003-08-03  7:44       ` Eugene Teo
  0 siblings, 0 replies; 23+ messages in thread
From: Eugene Teo @ 2003-08-03  7:44 UTC (permalink / raw)
  To: Danek Duvall, Eugene Teo, Andrew Morton, linux-kernel, linux-mm

<quote sender="Danek Duvall">
> On Sun, Aug 03, 2003 at 03:15:20PM +0800, Eugene Teo wrote:
> 
> > does your logs say that network is not functioning, yet syslog seems
> > to be running all these while? did you use a radeontool to "off" your
> > lcd screen? fyi, I am using Fujitsu E-7010.
> 
> There's nothing in my logs at all, so there's no way to tell what, if
> anything, survived the resume.  I'm not using radeontool; I hadn't even
> been aware of it until now.

check /var/log/message, did you get something like:

Aug  3 07:01:22 amaryllis -- MARK --
Aug  3 07:21:22 amaryllis -- MARK --
Aug  3 07:41:22 amaryllis -- MARK --
Aug  3 08:01:22 amaryllis -- MARK --
Aug  3 08:21:22 amaryllis -- MARK --
Aug  3 08:41:22 amaryllis -- MARK --
Aug  3 09:01:22 amaryllis -- MARK --
Aug  3 09:21:22 amaryllis -- MARK --
Aug  3 09:41:22 amaryllis -- MARK -- 

it shows that even though the laptop "freezes", the
laptop is still functioning. i just can't bring it
back to life or resume it. network is down, evident
from my getmail logs.

radeontool is simply a userspace tool that turns off
your lcd backlight.

Eugene


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-02 23:42   ` 2.6.0-test2-mm3 Andrew Morton
  2003-08-03  7:38     ` 2.6.0-test2-mm3 William Lee Irwin III
@ 2003-08-04 12:10     ` jlnance
  1 sibling, 0 replies; 23+ messages in thread
From: jlnance @ 2003-08-04 12:10 UTC (permalink / raw)
  To: linux-kernel

On Sat, Aug 02, 2003 at 04:42:05PM -0700, Andrew Morton wrote:

> Bolting 64G of memory onto a 32-bit CPU is tasteless too...
> 
> We already have a bucketload of highmem hacks in the kernel, and they are
> not sufficient for some people.  We have several more (large) highmem hacks
> being proposed.

Do you see us removing the other highmem hacks if we add the 4G/4G patch?

Thanks,

Jim

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03 15:13   ` 2.6.0-test2-mm3 Marcelo Abreu
@ 2003-08-03 15:59     ` Ingo Molnar
  0 siblings, 0 replies; 23+ messages in thread
From: Ingo Molnar @ 2003-08-03 15:59 UTC (permalink / raw)
  To: Marcelo Abreu; +Cc: linux-kernel


On Sun, 3 Aug 2003, Marcelo Abreu wrote:

> 	The 4G patch has changed the 'ldt' member of mm_context_t, calling
> it 'ldt_pages'. Patch from Raphael fixes fpu_system.h for correct
> compilation, but system won't boot with 'no387' parameter. So semantics
> must have been changed too.

i sent the correct patch to Andrew already:

--- linux/arch/i386/math-emu/fpu_system.h.orig	
+++ linux/arch/i386/math-emu/fpu_system.h	
@@ -15,6 +15,7 @@
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
+#include <asm/atomic_kmap.h>
 
 /* This sets the pointer FPU_info to point to the argument part
    of the stack frame of math_emulate() */
@@ -22,7 +23,7 @@
 
 /* s is always from a cpu register, and the cpu does bounds checking
  * during register load --> no further bounds checks needed */
-#define LDT_DESCRIPTOR(s)	(((struct desc_struct *)current->mm->context.ldt)[(s) >> 3])
+#define LDT_DESCRIPTOR(s)	(((struct desc_struct *)__kmap_atomic_vaddr(KM_LDT_PAGE0))[(s) >> 3])
 #define SEG_D_SIZE(x)		((x).b & (3 << 21))
 #define SEG_G_BIT(x)		((x).b & (1 << 23))
 #define SEG_GRANULARITY(x)	(((x).b & (1 << 23)) ? 4096 : 1)



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03 10:36 ` 2.6.0-test2-mm3 Jose Luis Domingo Lopez
@ 2003-08-03 15:13   ` Marcelo Abreu
  2003-08-03 15:59     ` 2.6.0-test2-mm3 Ingo Molnar
  0 siblings, 1 reply; 23+ messages in thread
From: Marcelo Abreu @ 2003-08-03 15:13 UTC (permalink / raw)
  To: linux-kernel; +Cc: mingo

Jose Luis Domingo Lopez wrote:
> Your mailer seems to have messed up newlines, so the patch (that I have
> no idea if its correct or not) won't apply ;-)


	The 4G patch has changed the 'ldt' member of mm_context_t, calling it 
'ldt_pages'. Patch from Raphael fixes fpu_system.h for correct 
compilation, but system won't boot with 'no387' parameter. So semantics 
must have been changed too.

	Maybe Ingo can review the effects of his changes on FPU emulation code.


	Marcelo Abreu



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
  2003-08-03  2:57 2.6.0-test2-mm3 Raphael Kubo da Costa
@ 2003-08-03 10:36 ` Jose Luis Domingo Lopez
  2003-08-03 15:13   ` 2.6.0-test2-mm3 Marcelo Abreu
  0 siblings, 1 reply; 23+ messages in thread
From: Jose Luis Domingo Lopez @ 2003-08-03 10:36 UTC (permalink / raw)
  To: linux-kernel

On Saturday, 02 August 2003, at 23:57:07 -0300,
Raphael Kubo da Costa wrote:

> Ok, here's my first patch. ;)
> This is a fix for i386's fpu_system.h, which was causing an error during 
> the compilation of fpu_entry.c.
> 
> --- linux-2.6.0-test2-mm3/arch/i386/math-emu/fpu_system.h	2003-08-02 
> 22:54:44.000000000 -0300
> +++ linux-2.6.0-test2-mm3-fix/arch/i386/math-emu/fpu_system.h	2003-08-02 
> 22:53:55.000000000 -0300
> @@ -22,7 +22,7 @@
> 
Your mailer seems to have messed up newlines, so the patch (that I have
no idea if its correct or not) won't apply ;-)

Regards,

-- 
Jose Luis Domingo Lopez
Linux Registered User #189436     Debian Linux Sid (Linux 2.6.0-test2-mm2)

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.0-test2-mm3
@ 2003-08-03  2:57 Raphael Kubo da Costa
  2003-08-03 10:36 ` 2.6.0-test2-mm3 Jose Luis Domingo Lopez
  0 siblings, 1 reply; 23+ messages in thread
From: Raphael Kubo da Costa @ 2003-08-03  2:57 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-mm, akpm

Ok, here's my first patch. ;)
This is a fix for i386's fpu_system.h, which was causing an error during 
the compilation of fpu_entry.c.

--- linux-2.6.0-test2-mm3/arch/i386/math-emu/fpu_system.h	2003-08-02 22:54:44.000000000 -0300
+++ linux-2.6.0-test2-mm3-fix/arch/i386/math-emu/fpu_system.h	2003-08-02 22:53:55.000000000 -0300
@@ -22,7 +22,7 @@
 
 /* s is always from a cpu register, and the cpu does bounds checking
  * during register load --> no further bounds checks needed */
-#define LDT_DESCRIPTOR(s)	(((struct desc_struct *)current->mm->context.ldt)[(s) >> 3])
+#define LDT_DESCRIPTOR(s)	(((struct desc_struct *)current->mm->context.ldt_pages)[(s) >> 3])
 #define SEG_D_SIZE(x)		((x).b & (3 << 21))
 #define SEG_G_BIT(x)		((x).b & (1 << 23))
 #define SEG_GRANULARITY(x)	(((x).b & (1 << 23)) ? 4096 : 1)



^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2003-08-04 12:10 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-02 22:22 2.6.0-test2-mm3 Andrew Morton
2003-08-02 22:31 ` 2.6.0-test2-mm3 bert hubert
2003-08-02 23:42   ` 2.6.0-test2-mm3 Andrew Morton
2003-08-03  7:38     ` 2.6.0-test2-mm3 William Lee Irwin III
2003-08-04 12:10     ` 2.6.0-test2-mm3 jlnance
2003-08-03  0:11 ` 2.6.0-test2-mm3 William Lee Irwin III
2003-08-03  2:14   ` 2.6.0-test2-mm3 William Lee Irwin III
2003-08-03  1:49 ` 2.6.0-test2-mm3 Felipe Alfaro Solana
2003-08-03  2:00   ` 2.6.0-test2-mm3 Andrew Morton
2003-08-03  2:03     ` 2.6.0-test2-mm3 Felipe Alfaro Solana
2003-08-03  5:07 ` 2.6.0-test2-mm3 Zwane Mwaikambo
2003-08-03  5:28   ` 2.6.0-test2-mm3 Andrew Morton
2003-08-03  5:22     ` 2.6.0-test2-mm3 Zwane Mwaikambo
2003-08-03  5:38       ` 2.6.0-test2-mm3 Joshua Kwan
2003-08-03  5:48       ` 2.6.0-test2-mm3 Zwane Mwaikambo
2003-08-03  7:05 ` 2.6.0-test2-mm3 Danek Duvall
2003-08-03  7:15   ` 2.6.0-test2-mm3 Eugene Teo
2003-08-03  7:28     ` 2.6.0-test2-mm3 Danek Duvall
2003-08-03  7:44       ` 2.6.0-test2-mm3 Eugene Teo
2003-08-03  2:57 2.6.0-test2-mm3 Raphael Kubo da Costa
2003-08-03 10:36 ` 2.6.0-test2-mm3 Jose Luis Domingo Lopez
2003-08-03 15:13   ` 2.6.0-test2-mm3 Marcelo Abreu
2003-08-03 15:59     ` 2.6.0-test2-mm3 Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).