* 2.6.0-mm1
@ 2003-12-23 5:11 Andrew Morton
2003-12-23 5:27 ` 2.6.0-mm1 Valdis.Kletnieks
` (8 more replies)
0 siblings, 9 replies; 54+ messages in thread
From: Andrew Morton @ 2003-12-23 5:11 UTC (permalink / raw)
To: linux-kernel, linux-mm
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/
Quite a lot of new material here. It would be appreciated if people who have
significant patches in -mm could retest please.
Changes since 2.6.0-test11-mm1:
-should-fix.patch
-must-fix-update-01.patch
-must-fix-update-2.patch
Folded into must-fix.patch
+must-fix-update-5.patch
must-fix and should-fix updates
-invalidate_inodes-speedup-fixes-2.patch
Folded into invalidate_inodes-speedup.patch
+unshare_files.patch
+use-unshare_files.patch
+add-steal_locks.patch
+use-steal_locks.patch
+env-signedness-fixes.patch
+suid-leak-fix.patch
+proc-tty-driver-permission-fix.patch
Backports of 2.4 fixes
-acpi_off-fix.patch
Dropped.
-acpi-update.patch
-acpi-update-warning-fix.patch
+acpi-20031203.patch
Latest ACPI tree
+acpi-20031203-fix.patch
Fix silliness in it.
-call_usermodehelper-retval-fix-3.patch
+call_usermodehelper-retval-fix-4.patch
Updated version which also does random things to blockdev and chardev
module loading.
-ia32-MSI-support-x86_64-fixes.patch
-msi-various-fixes.patch
-msi-many-cpus-fix.patch
Folded into ia32-MSI-support.patch
-sparc32-sched_clock.patch
Merged.
-fixmap-in-proc-pid-maps-ng.patch
Dropped pending rethink by David MT Roland McGrath.
-firmware-kernel_thread-on-demand.patch
Dropped (and added again in the DVB patches, below)
-loop-autoloading-fix.patch
Dropped (fixed in a different patch)
+loop-fix-hardsect.patch
Set the loop queue's hard sector size.
-loop-highmem-fixes.patch
Folded into loop-highmem.patch
-mpparse_es7000.patch
Fixed in the ACPI update patch
-x86_64-update.patch
This is out of date.
-x86_64-statfs64-fix.patch
+x86_64-statfs64-fix-2.patch
New version
+xfs-update-01.patch
XFS fixes
+jfs-nfs-le-fix.patch
JFS fixes
+modpost-fix.patch
Build fix
+ia32-jiffy-wrap-fixes.patch
Jiffy handling fixes
+mm_core_waiters-synchronisation.patch
Core dump/exit race fix
+inode-i_sb-checks.patch
Add checks for null inode->i_sb in core VFS (we're still arguing about this)
+rename-legacy_bus-to-platform_bus.patch
Rename `legacy_bus' to make more sense
+ioctl-userspace-warnings-fix.patch
Fix warnings when ioctl.h is used by userspace apps.
+tcrypt-cleanup-1.patch
+tcrypt-cleanup-2.patch
+tcrypt-module-unload-fix.patch
tcrypt work.
+w83627hf.patch
New watchdog driver. For the Winbond w83627hf.
+get_user_pages-lockup-fix.patch
Fix get_user_pages locking for i386's
+sn2-maintainers-update.patch
MAINTAINERS update
+ide-capability-elevation-fix.patch
IDE security fix
+ide-mmio-fix.patch
Fix IDE for MMIO mode
+scc-warning-fix.patch
+cycx-warning-fix.patch
Warning fixes
+via-audio-fixes.patch
via_audio can spam the system log
+locking-doc-update.patch
Documentation.
+name_to_dev_t-fix.patch
Don't replace slashes in names to `.'. Replace them with `!' instead. No
clue why, nobody tells me anything.
+atapi-mo-support.patch
Fix support for ATAPI MO drives (needs updating to reflect the changes in
mt-ranier-support.patch).
+mt-ranier-support.patch
Mt Ranier support in the CDROM uniform layer.
+ext3-enospc-accounting-fix.patch
ext3 space accounting goes wrong on ENOSPC with quotas enabled.
+dvb-01-remove-firmware.patch
+dvb-02-update-saa7146-capture-core.patch
+dvb-03-bt8xx-driver.patch
+dvb-04-skystar2-update.patch
+dvb-05-core-update.patch
+dvb-06-frontend-update.patch
+dvb-07-av7110-update.patch
+dvb-08-av7110-firmware-loading.patch
+dvb-09-ttusb-dec-update.patch
+dvb-10-cleanup.patch
+dvb-11-firmware_class-update.patch
+dvb-12-documentation.patch
DVB update
+selinux-separate-output-dir-fix.patch
+selinux-ioctl-check-fix.patch
+selinux-nameidata-oops-fix.patch
SELinux update
+isdn-compile-fix.patch
+ia32-GENERIC_ARCH-NUMA-build-fix.patch
Compile fixes
+summit-ebda-parsing-fix.patch
Summit EBDA parsing fix
+README-typo-fix.patch
Fix tpyo
+alsa-gus-scheduling-in-interrupt-fix.patch
Don't call scheule() from hard IRQ.
+o21-sched.patch
CPu scheduler interactivity update.
+fatfs-log-storm-fix.patch
Fix excessive printks from fatfs during I/O errors.
+gconfig-warning-fix.patch
Warning fix
+via-tsc-fix.patch
Fix problem with TSC on via686a/KX133 mobos
+fix-es7000-compile.patch
Build fix.
+ppp_async-locking-fix.patch
Move ppp rx handling to softirq.
+fix-sx-stupidity.patch
Don't do `if (i < TIMEOUT_1 > 0)'
+make-try_to_free_pages-walk-zonelist.patch
+make-try_to_free_pages-walk-zonelist-fix.patch
Page reclaim preparation for more complex NUMA layouts.
+pcmcia-maintainers.patch
MAINTAINER update
+yenta-printk-levels.patch
Fix some printk levels
+pcnet_cs-fixes.patch
PCMCIA net driver fixes
+pcmcia-16bit-interrupt-selection-fix.patch
+pcmcia-stack-reduction.patch
+i82365-pci-cruft-removal.patch
More PCMCIA fixes
+proc-pid-maps-gate_map.patch
Add a dummy VMA to prevent /proc/pid/maps printing wrong things on ia64. I
think. Nobody tells me anything.
+buffer_error-suppression.patch
Prevent some uninteresting printks after I/O error.
+main_c-cleanups.patch
init/main.c fixlets.
+fat-01-relax-validity-tests.patch
+fat-02-utf8-tailing-dots-fix.patch
+fat-03-readv-writev-support.patch
+fat-04-printk-fix.patch
+fat-05-msdos_fs-h-cleanup.patch
+fat-06-fix-prev_free.patch
+fat-07-cluster-count-check.patch
+fat-08-misc-cleanups.patch
+fat-09-fat_striptail_len-retval-fix.patch
+fat-10-panic-removal.patch
fatfs update
+non-terminating-inflate-fix.patch
inflate.c fix
+remove-CardServices-from-pcmcia-net-drivers.patch
Fix lots of pcmcia drivers to use newer API names. We may be dropped this
because it puts us out of sync with 2.4 drivers.
+const-fixes.patch
+s390-const-fixes.patch
Fix bogus declarations of functions to remove const values.
+execve-memleak-fix.patch
Fix a memleak on the execve() error path.
+h8300-bitops-update.patch
Fix h8/300 bitops
+document-speedstep-zero-page-usage.patch
Documentation fix.
+fbdev-printk-level-fix.patch
printk level fixes
+ppdev-module-alias.patch
Add a module alias to ppdev
+floppy-typo-fixes.patch
Fix typos.
+__BVEC_START-fix.patch
Fix BIO layer for DM.
+kunmap_atomic-check-resched.patch
Add preemption point to kunmap_atomic()
+e100-oops-fix.patch
Fix e100 ethtool oops.
+free_pgt_generic1.patch
Add hook to fix hugetlbs on ia64.
+SubmittingDrivers-update.patch
Documentaiton update.
+sysfs-oops-fix.patch
+sysfs-mem-device-support.patch
+sysfs-misc-device-support.patch
+sysfs-vc-device-support.patch
sysfs update.
+4g4g-sysenter-test-fix.patch
4G/4G sysenter/SEP fix.
All 384 patches:
mm.patch
add -mmN to EXTRAVERSION
kgdb-ga.patch
kgdb stub for ia32 (George Anzinger's one)
kgdbL warning fix
kgdb-buff-too-big.patch
kgdb buffer overflow fix
kgdb-warning-fix.patch
kgdbL warning fix
kgdb-build-fix.patch
kgdb-spinlock-fix.patch
kgdb-fix-debug-info.patch
kgdb: CONFIG_DEBUG_INFO fix
kgdb-cpumask_t.patch
kgdb-x86_64-fixes.patch
x86_64 fixes
kgdb-over-ethernet.patch
kgdb-over-ethernet patch
kgdb-over-ethernet-fixes.patch
kgdb-over-ethernet fixlets
kgdb-CONFIG_NET_POLL_CONTROLLER.patch
kgdb: replace CONFIG_KGDB with CONFIG_NET_RX_POLL in net drivers
kgdb-handle-stopped-NICs.patch
kgdb: handle netif_stopped NICs
eepro100-poll-controller.patch
tlan-poll_controller.patch
tulip-poll_controller.patch
tg3-poll_controller.patch
kgdb: tg3 poll_controller
8139too-poll_controller.patch
8139too poll controller
kgdb-eth-smp-fix.patch
kgdb-over-ethernet: fix SMP
kgdb-eth-reattach.patch
kgdb-skb_reserve-fix.patch
kgdb-over-ethernet: skb_reserve() fix
must-fix.patch
must fix lists update
must fix list update
mustfix update
must-fix-update-5.patch
must-fix update
RD1-cdrom_ioctl-B6.patch
RD2-ioctl-B6.patch
RD2-ioctl-B6-fix.patch
RD2-ioctl-B6 fixes
RD3-cdrom_open-B6.patch
RD4-open-B6.patch
RD5-cdrom_release-B6.patch
RD6-release-B6.patch
RD7-presto_journal_close-B6.patch
RD8-f_mapping-B6.patch
RD9-f_mapping2-B6.patch
RD10-i_sem-B6.patch
RD11-f_mapping3-B6.patch
RD12-generic_osync_inode-B6.patch
RD13-bd_acquire-B6.patch
RD14-generic_write_checks-B6.patch
RD15-I_BDEV-B6.patch
cramfs-use-pagecache.patch
cramfs: use pagecache better
invalidate_inodes-speedup.patch
invalidate_inodes speedup
more invalidate_inodes speedup fixes
unshare_files.patch
unshare_files
use-unshare_files.patch
use new unshare_files helper
add-steal_locks.patch
add steal_locks helper
use-steal_locks.patch
use new steal_locks helper
env-signedness-fixes.patch
fix unsigned issue with env_end - env_start
suid-leak-fix.patch
fix suid leak in /proc
proc-tty-driver-permission-fix.patch
make /proc/tty/driver/ S_IRUSR | S_IXUSR for root only
serio-01-renaming.patch
serio: rename serio_[un]register_slave_port to __serio_[un]register_port
serio-02-race-fix.patch
serio: possible race between port removal and kseriod
serio-03-blacklist.patch
Add black list to handler<->device matching
serio-04-synaptics-cleanup.patch
Synaptics: code cleanup
serio-05-reconnect-facility.patch
serio: reconnect facility
serio-06-synaptics-use-reconnect.patch
Synaptics: use serio_reconnect
synaptics-powerpro-fix.patch
synaptics powerpro fix
input-unregister-on-fail-fix.patch
Input: unregister i8042 port when writing to control register fails
serio-pm-fix.patch
psmouse pm resume fix
atkbd-24-compatibility.patch
Fixes for keyboard 2.4 compatibility
input-01-atkbd_softrepeat-fix.patch
input: fix atkbd_softrepeat
input-02-add-psmouse_proto.patch
Input: add psmouse_proto parameter
input-03-resume-methods.patch
Input: implement resume methods
input-04-atkbd-reconnect-method.patch
Input: add atkbd reconnect method
input-05-psmouse-fixes.patch
Input: psmouse fixes
input-06-serio_unregister_port_delayed.patch
Input: add serio_[un]register_port_delayed to fix deadlock
input-07-remove-synaptics-config-option.patch
Input: remove synaptics config option
input-08-synaptics-protocol-discovery.patch
Input: synaptics protocol discovery
input-use-after-free-checks.patch
input layer debug checks
acpi-20031203.patch
acpi-20031203-fix.patch
cfq-4.patch
CFQ io scheduler
CFQ fixes
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-sched_clock-fix.patch
implement sched_clock properly
ppc64-use-statfs64.patch
use compat_statfs64 on ppc64
ppc64-compat_clock.patch
ppc64: use compat clock syscalls
ppc64-numa-sign-extension-fix.patch
ppc64: fix sign extension bug in NUMA code
ppc64-IRQ_INPROGRESS-fix.patch
ppc64: revert IRQ_INPROGRESS change
sn2-console-driver-fix.patch
sn_serial console fix
qla1280-update.patch
qla1280 update
sym-speed-fix.patch
sym2 Ultra-160 fix
aic7xxx-parallel-build-fix.patch
fix parallel builds for aic7xxx
ramdisk-cleanup.patch
intel8x0-cleanup.patch
intel8x0 cleanups
pdflush-diag.patch
futex-uninlinings.patch
futex uninlining
zap_page_range-debug.patch
zap_page_range() debug
call_usermodehelper-retval-fix-4.patch
call_usermodehelper retval fix, take 4
asus-L5-fix.patch
Asus L5 framebuffer fix
jffs-use-daemonize.patch
tulip-NAPI-support.patch
tulip NAPI support
tulip-napi-disable.patch
tulip NAPI: disable poll in close
get_user_pages-handle-VM_IO.patch
ia32-MSI-support.patch
Updated ia32 MSI Patches
MSI Update Based on 2.6.0-test9-mm3
IOAPIC/MSI compile fixes for NR_CPUS > 32
ia32-efi-support.patch
EFI support for ia32
efi warning fix
fix EFI for ppc64, ia64
efi: warning fixes
ia32 EFI: Add CONFIG_EFI
efi: Update Kconfig help
efi update patch (ia64)
support-zillions-of-scsi-disks.patch
support many SCSI disks
SGI-IOC4-IDE-chipset-support.patch
Add support for SGI's IOC4 chipset
pcibios_test_irq-fix.patch
Fix pcibios test IRQ handler return
i82365-sysfs-ordering-fix.patch
Fix init_i82365 sysfs ordering oops
pci_set_power_state-might-sleep.patch
ia64-ia32-missing-compat-syscalls.patch
From: Arun Sharma <arun.sharma@intel.com>
Subject: Missing compat syscalls in ia64
compat-layer-fixes.patch
Minor bug fixes to the compat layer
compat-ioctl-for-i2c.patch
compat_ioctl for i2c
fix-sqrt.patch
sqrt() fixes
scale-min_free_kbytes.patch
scale the initial value of min_free_kbytes
cdrom-allocation-try-harder.patch
Use __GFP_REPEAT for cdrom buffer
sym-2.1.18f.patch
CONFIG_STANDALONE-default-to-n.patch
Make CONFIG_STANDALONE default to N
extra-buffer-diags.patch
name_to_dev_t-__init.patch
make name_to_dev_t __init
CONFIG_SYSFS.patch
From: Pat Mochel <mochel@osdl.org>
Subject: [PATCH] Add CONFIG_SYSFS
CONFIG_SYSFS-boot-from-disk-fix.patch
slab-leak-detector.patch
slab leak detector
early-serial-registration-fix.patch
serial console registration bugfix
3c527-smp-update.patch
SMP support on 3c527 net driver
3c527-race-fix.patch
ext3-latency-fix.patch
ext3 scheduling latency fix
loop-fix-hardsect.patch
loop: fix hard sector size
loop-module-alias.patch
loop needs MODULE_ALIAS_BLOCK
loop-remove-blkdev-special-case.patch
loop-highmem.patch
remove useless highmem bounce from loop/cryptoloop
loop-bio-handling-fix.patch
loop: BIO handling fix
cmpci-set_fs-fix.patch
cmpci.c: remove pointless set_fs()
dentry-bloat-fix-2.patch
Fix dcache and icache bloat with deep directories
nls-config-fixes.patch
NSL config fixes
proc_pid_lookup-vs-exit-race-fix.patch
Fix proc_pid_lookup vs exit race
gcc-Os-if-embedded.patch
Add `gcc -Os' config option
aic7xxx-sleep-in-spinlock-fix.patch
vm86-sysenter-fix.patch
Fix sysenter disabling in vm86 mode
refill_counter-overflow-fix.patch
vmscan: reset refill_counter after refilling the inactive list
verbose-timesource.patch
be verbose about the time source
acpi-pm-timer.patch
ACPI PM Timer
acpi-pm-timer-fixes-2.patch
ACPI PM timer fixes
timer_pm-verbose-timesource-fix.patch
Subject: [PATCH] linux-2.6.0-test9-mm3_verbose-timesource-acpi-pm_A0
as-regression-fix.patch
Fix IO scheduler regression
as-request-poisoning.patch
AS: request poisoning
as-request-poisoning-fix.patch
AS: request poisining fix
as-fix-all-known-bugs.patch
AS fixes
as-new-process-estimation.patch
AS: new process estimation
as-cooperative-thinktime.patch
AS: thinktime improvement
scale-nr_requests.patch
scale nr_requests with TCQ depth
truncate_inode_pages-check.patch
local_bh_enable-warning-fix.patch
cdc-acm-softirq-rx.patch
cdc-acm: move rx processing to softirq
forcedeth.patch
forcedeth: nForce ethernet driver
forcedeth-update-2.patch
forcedeth update
forcedeth-update-3.patch
forcedeth update
proc-pid-maps-output-fix.patch
Restore /proc/pid/maps formatting
sis900-pm-support.patch
Add PM support to sis900 network driver
8139too-locking-fix.patch
8139too locking fix
ia32-wp-test-cleanup.patch
ia32 WP test cleanup
powermate-payload-size-fix.patch
Griffin Powermate fix
more-than-256-cpus.patch
Fix for more than 256 CPUs
ZONE_SHIFT-from-NODES_SHIFT.patch
Use NODES_SHIFT to calculate ZONE_SHIFT
memmove-speedup.patch
optimize ia32 memmove
pipe-readv-writev.patch
Fix writev atomicity on pipe/fifo
lockless-semop.patch
lockless semop
percpu_counter-use-alloc_percpu.patch
use alloc_percpu in percpu_counters
i450nx-scanning-fix.patch
i450nx PCI scanning fix
find_busiest_queue-commentary.patch
find_busiest_queue() commentary fix
SOUND_CMPCI-config-typo-fix.patch
fix SOUND_CMPCI Configure help entry
context-switch-accounting-fix.patch
Fix context switch accounting
access-vfs_permission-fix.patch
Subject: Re: [PATCH] fix access() / vfs_permission() bug
eicon-linkage-fix.patch
eicon/ and hardware/eicon/ drivers using the same symbols
kobject-docco-additions.patch
Improve documentation for kobjects
radeon-line-length-fix.patch
radeonfb fix
proc-interrupts-use-seq-file.patch
seq_file version of /proc/interrupts
proc-interrupts-use-seq_file-2.patch
Finish /proc/interrupts seq_file patch
ide-tape-update.patch
ide-tape update
intel-440gx-ids-fix.patch
centrino-1ghz-support.patch
support centrino 1GHz
pnp-fix-1.patch
PnP Fixes #1
pnp-fix-2.patch
PnP Fixes #2
pnp-fix-3.patch
PnP Fixes #3
document-elevator-equals.patch
document elevator= parameter
cpio-offset-fix.patch
missing padding in cpio_mkfile in usr/gen_init_cpio.c
watchdog-retval-fix.patch
watchdog write() return value fixes
document-lib-parser.patch
Add lib/parser.c kernel-doc
cpumask-header-reorg.patch
cpumask.h reorg
cpumask-format-consolidation.patch
new /proc/irq cpumask format; consolidate cpumask display and input code
init-remove-CLONE_FILES.patch
Remove CLONE_FILES from init kernel thread creation
alpha-stack-dump.patch
usb-msgsize-fix.patch
HiSpd Isoc 1024KB submits: -EMSGSIZE
pagefault-accounting-fix.patch
pagefault accounting fix
pagefault-accounting-fix-fix.patch
pagefault accounting fix fix
pagefault_accounting-fix-fix-fix-fix.patch
pagefault accounting again
proc_kill_inodes-oops-fix.patch
proc_bus_pci_lseek-remove-lock_kernel.patch
remove lock_kernel() from proc_bus_pci_lseek()
pagemap-include-recursion-fix.patch
remove include recursion from linux/pagemap.h
dm-bounce-buffer-fix.patch
dm and bounce buffer panic fix
ia64-piix5-fix.patch
PIIX5 Doesn't work on IA64
ide-dma-disabled-fix.patch
Can't disable IDE DMA
sysfs_remove_dir-vs-dcache_readdir-race-fix.patch
sysfs_remove_dir Vs dcache_readdir race fix
ext3-external-journal-bd_claim.patch
ext3: bd_claim for journal device
page-alloc-failure-dump_stack.patch
x86_64-statfs64-fix-2.patch
statfs64 fix
x86_64-aout-support.patch
Add a.out support for x86-64
remove-mm-swap_address.patch
remove mm->swap_address
sis-assignment-fix.patch
sis comparison / assignment operator fix
sync_dquots-oops-fix.patch
Subject: [PATCH] Fix possible oops in vfs_quota_sync()
ext3-quota-deadlock-fix.patch
Ext3+quota deadlock fix
buslogic-update.patch
BusLogic Driver update
binfmt_elf-help-update.patch
BINFMT_ELF=m is not an option
aic7xxx_old-proc-oops-fix.patch
aic7x_old /proc oops fix
invalidate_mmap_range-non-gpl-export.patch
mark invalidate_mmap_range() as EXPORT_SYMBOL
md-1-limit_max_sectors.patch
md: Limit max_sectors on md when merge_bvec_fn defined on underlying device.
md-2-set-ra_pages.patch
md: set ra_pages for raid0/raid5 devices properly.
alsa-sleep-in-spinlock-fix.patch
ALSA sleep in spinlock fix
do_gettimeofday-tick_usec-fix.patch
Erronous use of tick_usec in do_gettimeofday
dm-1-fix-block-device-resizing.patch
dm: fix block device resizing
dm-2-remove-dynamic-table-resizing.patch
dm: remove dynamic table resizing
dm-3-v4-ioctl-default.patch
dm: make v4 of the ioctl interface the default
dm-4-set-io-restriction-defaults.patch
dm: set io restriction defaults
dm-5-sleep-in-spinlock-fix.patch
dm: dm_table_event() sleep on spinlock bug
fix-ELF-exec-with-huge-bss.patch
fix ELF exec with huge bss
direct-io-memleak-fix.patch
O_DIRECT memory leak fix
jbd-b_committed_data-locking-fix.patch
JBD: b_committed_data locking fix
dvb-i2c-timeout-fix.patch
dvb i2c timeout fix
compat_timespec-cleanup.patch
more correct get_compat_timespec interface
MAINTAINERS-mailing-list-fixes.patch
MAINTAINERS vger.rutgers.edu
list_empty_careful-docco.patch
list_empty_careful() documentation.
compound-pages-dirty-page-fix.patch
Clear dirty bits etc on compound frees
3c574_cs-deadlock-fix.patch
Fix deadlock in 3c574_cs.c
non-fg-console-unimap-fixes.patch
Allow unimap change on non fg console
sym2-speed-selection-fix.patch
Speed selection fix for sym53c8xx
jiffies-comment-fix.patch
fix outdated comment in jiffies.h
slab-reclaim-accounting-fix.patch
slab reclaim accounting fix
struct_cpy-warning-fix.patch
struct_cpy compilation warning
more-MODULE_ALIASes.patch
More MODULE_ALIASes
x86_64-sysrq-t-fix.patch
x86_64 sysrq-t fix
nr-slab-accounting-fix.patch
nr_slab accounting fix
moto-ppc32-booting-fix.patch
Fix booting on a number of Motorola PPC32 machines
isdn-spinlock-init.patch
isdn_ppp_ccp.c uses uninitialized spinlock
nbd-userspace-build-fix.patch
fix userspace compiles with nbd.h
dac960-separate-queues.patch
DAC960 request queue per disk
xfs-update-01.patch
XFS update
jfs-nfs-le-fix.patch
JFS fix for NFS on little-endian systems
modpost-fix.patch
Get modpost to work properly with vmlinux in a different directory
ia32-jiffy-wrap-fixes.patch
ia32 jiffy wrapping fixes
mm_core_waiters-synchronisation.patch
From: Roland McGrath <roland@redhat.com>
Subject: [PATCH] synchronize use of mm->core_waiters
inode-i_sb-checks.patch
Missing i_sb NULL pointer check in destroy_inode()
rename-legacy_bus-to-platform_bus.patch
Rename legacy_bus to platform_bus
ioctl-userspace-warnings-fix.patch
Fix ioctl related warnings in userspace
tcrypt-cleanup-1.patch
tcrypt cleanup (1/2)
tcrypt-cleanup-2.patch
tcrypt cleanup (2/2)
tcrypt-module-unload-fix.patch
Allow tcrypt module to be unloaded
w83627hf.patch
Winbond w83627hf driver
get_user_pages-lockup-fix.patch
Missing up_read after get_user_pages in arch/i386/lib/usercopy.c?
sn2-maintainers-update.patch
update sn2 MAINTAINERS file entry
ide-capability-elevation-fix.patch
IDE capability elevation fix
ide-mmio-fix.patch
IDE MMIO fix
scc-warning-fix.patch
SCC warning fix
cycx-warning-fix.patch
cycx_drv warning fix
via-audio-fixes.patch
VIA audio fixes
locking-doc-update.patch
Kernel Locking Documentation update
name_to_dev_t-fix.patch
name_to_dev_t() fix
atapi-mo-support.patch
ATAPI MO drive support
mt-ranier-support.patch
mt rainier support
ext3-enospc-accounting-fix.patch
From: Jan Kara <jack@suse.cz>
Subject: Re: ext3 truncate bug in 2.6.0?
dvb-01-remove-firmware.patch
dvb: av7110 firmware removal patch
dvb-02-update-saa7146-capture-core.patch
dvb: Update saa7146 capture core
dvb-03-bt8xx-driver.patch
dvb: Add new dvb bt8xx driver
dvb-04-skystar2-update.patch
dvb: Update Skystar2 DVB driver
dvb-05-core-update.patch
dvb: Update DVB core
dvb-06-frontend-update.patch
dvb: Update DVB frontend drivers
dvb-07-av7110-update.patch
dvb: Update av7110 driver
dvb-08-av7110-firmware-loading.patch
dvb: Add firmware loading support to av7110 driver
dvb-09-ttusb-dec-update.patch
dvb: Update TTUSB DEC driver
dvb-10-cleanup.patch
dvb: Cleanup patch to remove 2.4 crud
dvb-11-firmware_class-update.patch
dvb: Firmware_class update
dvb-12-documentation.patch
dvb: Add DVB documentation
selinux-separate-output-dir-fix.patch
Fix SELinux build for "make O=..."
selinux-ioctl-check-fix.patch
Reduce SELinux check on KDSKBENT/SENT ioctls
selinux-nameidata-oops-fix.patch
Remove use of nameidata by selinux_inode_permission
isdn-compile-fix.patch
isdn/eicon/eicon_mod.c build fix
ia32-GENERIC_ARCH-NUMA-build-fix.patch
Fix X86_GENERICARCH & NUMA compile error
summit-ebda-parsing-fix.patch
Fix Summit EBDA parsing
README-typo-fix.patch
./README typo fix
alsa-gus-scheduling-in-interrupt-fix.patch
alsa gus max schedule-in-irq-fix
o21-sched.patch
O21 for interactivity 2.6.0
fatfs-log-storm-fix.patch
fatfs: fix printk storm during I/O errors
gconfig-warning-fix.patch
make gconfig warning removal
via-tsc-fix.patch
Fix via686a/KX133 TSC failure
fix-es7000-compile.patch
Fix es7000 compile
ppp_async-locking-fix.patch
Make ppp_async callable from hard interrupt
fix-sx-stupidity.patch
Fix double logical operator drivers/char/sx.c
make-try_to_free_pages-walk-zonelist.patch
make try_to_free_pages walk zonelist
make-try_to_free_pages-walk-zonelist-fix.patch
zone scanning fix
pcmcia-maintainers.patch
dhinds is not 2.6 PCMCIA maintainer
yenta-printk-levels.patch
fix yenta printk logging levels
pcnet_cs-fixes.patch
pcnet_cs driver bug fix / update
pcmcia-16bit-interrupt-selection-fix.patch
fix for 16-bit PCMCIA interrupt selection
pcmcia-stack-reduction.patch
reduce kernel stack usage in PCMCIA CIS parsing
i82365-pci-cruft-removal.patch
strip out PCI cruft from i82365 driver
proc-pid-maps-gate_map.patch
/proc/pid/maps gate map
buffer_error-suppression.patch
relax check of page/bh state on I/O error
main_c-cleanups.patch
init/main.c trivial cleanups
fat-01-relax-validity-tests.patch
FAT: More relax FATFS validity tests (1/10)
fat-02-utf8-tailing-dots-fix.patch
FAT: Fix the tailing dots on the utf8 path (2/10)
fat-03-readv-writev-support.patch
FAT: add readv/writev support to FAT (3/10)
fat-04-printk-fix.patch
FAT: trivial printk format fix (4/10)
fat-05-msdos_fs-h-cleanup.patch
FAT: include/linux/msdos_fs.h cleanup
fat-06-fix-prev_free.patch
FAT: Fix ->prev_free of fat (6/10)
fat-07-cluster-count-check.patch
FAT: Add count of clusters check in fat_fill_super() (7/10)
fat-08-misc-cleanups.patch
FAT: misc cleanups/fixes
fat-09-fat_striptail_len-retval-fix.patch
FAT: empty path by fat_striptail_len returns the -ENOENT
fat-10-panic-removal.patch
FAT: Use just printk() instead of unneeded fat_fs_panic()
non-terminating-inflate-fix.patch
lib/inflate.c fix
remove-CardServices-from-pcmcia-net-drivers.patch
CardServices() removal from pcmcia net drivers
const-fixes.patch
const vs. __attribute__((const)) confusion
s390-const-fixes.patch
s390 const fixes
execve-memleak-fix.patch
Fix memleak on execve failure
h8300-bitops-update.patch
H8/300 bitops.h update
document-speedstep-zero-page-usage.patch
add SpeedStep zero-page usage documentation
fbdev-printk-level-fix.patch
change two annoying messages from framebuffer drivers
ppdev-module-alias.patch
ppdev MODULES_ALIAS
floppy-typo-fixes.patch
From: Juergen Quade <quade@hsnr.de>
Subject: [PATCH] Small copy-paste typo in floppy.c
__BVEC_START-fix.patch
Fix another dm and bio problem
kunmap_atomic-check-resched.patch
Check for preemption in kunmap_atomic()
e100-oops-fix.patch
e100 oops fix
free_pgt_generic1.patch
hugepage pagetable freeing fix
SubmittingDrivers-update.patch
SubmittingDrivers update
sysfs-oops-fix.patch
fix sysfs oops
sysfs-mem-device-support.patch
add sysfs mem device support
sysfs-misc-device-support.patch
add sysfs misc device support
sysfs-vc-device-support.patch
add sysfs vc device support [4/4]
ide-tape-rq-special.patch
ide-siimage-seagate.patch
ide-siimage-stack-fix.patch
ide-siimage-sil3114.patch
ide-cmd640-pci1.patch
ide-pdc_old-pio-fix.patch
ide-pdc_old-udma66-fix.patch
ide-pdc_old-66mhz_clock-fix.patch
nforce2-disconnect-quirk.patch
nforce2-apic.patch
ide-recovery-time.patch
ide-pdc_new-proc.patch
list_del-debug.patch
list_del debug check
print-build-options-on-oops.patch
show_task-free-stack-fix.patch
show_task() fix and cleanup
oops-dump-preceding-code.patch
i386 oops output: dump preceding code
lockmeter.patch
lockmeter-sparc64-fix.patch
lockmeter-sparc64-fix-fix.patch
lockmeter-preemption-fixes.patch
lockmeter preemption fixes
lockmeter-ia64-config-fix.patch
Fix lockmeter on ia64
printk-oops-mangle-fix.patch
disentangle printk's whilst oopsing on SMP
4g-2.6.0-test2-mm2-A5.patch
4G/4G split patch
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g/4g usercopy atomicity fix
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g/4g usercopy atomicity fix
4G/4G preempt on vstack
4G/4G: even number of kmap types
4g4g: fix __get_user in slab
4g4g: Remove extra .data.idt section definition
4g/4g linker error (overlapping sections)
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g4g: show_registers() fix
4g/4g usercopy atomicity fix
4g4g: debug flags fix
4g4g: Fix wrong asm-offsets entry
cyclone time fixmap fix
4G/4G preempt on vstack
4G/4G: even number of kmap types
4g4g: fix __get_user in slab
4g4g: Remove extra .data.idt section definition
4g/4g linker error (overlapping sections)
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g4g: show_registers() fix
4g/4g usercopy atomicity fix
4g4g: debug flags fix
4g4g: Fix wrong asm-offsets entry
cyclone time fixmap fix
use direct_copy_{to,from}_user for kernel access in mm/usercopy.c
4G/4G might_sleep warning fix
4g/4g pagetable accounting fix
4g4g-athlon-prefetch-handling-fix.patch
4g4g-wp-test-fix.patch
Fix 4G/4G and WP test lockup
4g4g-KERNEL_DS-usercopy-fix.patch
4G/4G KERNEL_DS usercopy again
4g4g-vm86-fix.patch
Fix 4G/4G X11/vm86 oops
4g4g-athlon-triplefault-fix.patch
Fix 4G/4G athlon triplefault
4g4g-sep-fix.patch
4g4g SEP fix
4g4g-sysenter-test-fix.patch
Fix 4G/4G split fix for pre-pentiumII machines
ppc-fixes.patch
make mm4 compile on ppc
aic7xxx_old-oops-fix.patch
O_DIRECT-race-fixes-rollup.patch
DIO fixes forward port and AIO-DIO fix
O_DIRECT race fixes comments
O_DRIECT race fixes fix fix fix
DIO locking rework
O_DIRECT XFS fix
dio-aio-fixes.patch
direct-io AIO fixes
dio-aio-fixes-fixes.patch
dio-aio fix fix
readahead-multiple-fixes.patch
readahead: multipole performance fixes
readahead-simplification.patch
readahead simplification
aio-sysctl-parms.patch
aio sysctl parms
aio-01-retry.patch
AIO: Core retry infrastructure
Fix aio process hang on EINVAL
AIO: flush workqueues before destroying ioctx'es
AIO: hold the context lock across unuse_mm
task task_lock in use_mm()
4g4g-aio-hang-fix.patch
Fix AIO and 4G-4G hang
aio-retry-elevated-refcount.patch
aio: extra ref count during retry
aio-splice-runlist.patch
Splice AIO runlist for fairer handling of multiple io contexts
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
lock_buffer_wq fix
aio-05-fs_write.patch
AIO: Filesystem aio write
aio-06-bread_wq.patch
AIO: Async block read
aio-07-ext2getblk_wq.patch
AIO: Async get block for ext2
O_SYNC-speedup-2.patch
speed up O_SYNC writes
O_SYNC-speedup-2-f_mapping-fixes.patch
aio-09-o_sync.patch
aio O_SYNC
AIO: fix a BUG
Unify o_sync changes for aio and regular writes
aio-O_SYNC-fix bits got lost
aio: writev nr_segs fix
More AIO O_SYNC related fixes
aio-09-o_sync-f_mapping-fixes.patch
gang_lookup_next.patch
Change the page gang lookup API
aio-gang_lookup-fix.patch
AIO gang lookup fixes
aio-O_SYNC-short-write-fix.patch
Fix for O_SYNC short writes
aio-12-readahead.patch
AIO: readahead fixes
aio O_DIRECT no readahead
Unified page range readahead for aio and regular reads
aio-12-readahead-f_mapping-fix.patch
aio-readahead-speedup.patch
Readahead issues and AIO read speedup
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
@ 2003-12-23 5:27 ` Valdis.Kletnieks
2003-12-23 5:28 ` 2.6.0-mm1 Marcos D. Marado Torres
` (7 subsequent siblings)
8 siblings, 0 replies; 54+ messages in thread
From: Valdis.Kletnieks @ 2003-12-23 5:27 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm
[-- Attachment #1: Type: text/plain, Size: 278 bytes --]
On Mon, 22 Dec 2003 21:11:31 PST, Andrew Morton <akpm@osdl.org> said:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.
6.0-mm1/
Erm? Seems to actually be at:
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0/2.6.0-mm1/
[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
2003-12-23 5:27 ` 2.6.0-mm1 Valdis.Kletnieks
@ 2003-12-23 5:28 ` Marcos D. Marado Torres
2003-12-23 5:28 ` 2.6.0-mm1 Andrew Morton
` (6 subsequent siblings)
8 siblings, 0 replies; 54+ messages in thread
From: Marcos D. Marado Torres @ 2003-12-23 5:28 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Mon, 22 Dec 2003, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/
As a matter of fact the link is:
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0/2.6.0-mm1/
Thanks for the patch,
Mind Booster Noori
- --
==================================================
Marcos Daniel Marado Torres AKA Mind Booster Noori
/"\ http://student.dei.uc.pt/~marado
\ / marado@student.dei.uc.pt
X ASCII Ribbon Campaign
/ \ against HTML e-mail and Micro$oft attachments
==================================================
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Made with pgp4pine 1.76
iD8DBQE/59J5mNlq8m+oD34RAt7lAKDTyWM2+TvG2nvzjBAe8jTjvZO2WQCg3/4p
GwaJRAHrIcspRXOkeABSIH4=
=5K8v
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
2003-12-23 5:27 ` 2.6.0-mm1 Valdis.Kletnieks
2003-12-23 5:28 ` 2.6.0-mm1 Marcos D. Marado Torres
@ 2003-12-23 5:28 ` Andrew Morton
2003-12-23 5:40 ` 2.6.0-mm1 Stan Bubrouski
2003-12-23 7:30 ` 2.6.0-mm1 Martin J. Bligh
` (5 subsequent siblings)
8 siblings, 1 reply; 54+ messages in thread
From: Andrew Morton @ 2003-12-23 5:28 UTC (permalink / raw)
To: linux-kernel, linux-mm
Andrew Morton <akpm@osdl.org> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/
make that
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0/2.6.0-mm1/
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:28 ` 2.6.0-mm1 Andrew Morton
@ 2003-12-23 5:40 ` Stan Bubrouski
2003-12-23 7:57 ` 2.6.0-mm1 Andrew Walrond
0 siblings, 1 reply; 54+ messages in thread
From: Stan Bubrouski @ 2003-12-23 5:40 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel@vger.kernel.org, linux-mm
On Tue, 2003-12-23 at 00:28, Andrew Morton wrote:
> Andrew Morton <akpm@osdl.org> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/
>
> make that
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0/2.6.0-mm1/
Why do I not see the original message Subject: 2.6.0-mm1
???
Was there ever an original message to this thread?
-sb
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
` (2 preceding siblings ...)
2003-12-23 5:28 ` 2.6.0-mm1 Andrew Morton
@ 2003-12-23 7:30 ` Martin J. Bligh
2003-12-23 17:29 ` 2.6.0-mm1 Tom Rini
` (4 subsequent siblings)
8 siblings, 0 replies; 54+ messages in thread
From: Martin J. Bligh @ 2003-12-23 7:30 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, linux-mm
These look new to me.
In file included from init/initramfs.c:393:
init/../lib/inflate.c: In function `gunzip':
init/../lib/inflate.c:1123: warning: value computed is not used
init/../lib/inflate.c:1124: warning: value computed is not used
init/../lib/inflate.c:1125: warning: value computed is not used
init/../lib/inflate.c:1126: warning: value computed is not used
In file included from arch/i386/boot/compressed/misc.c:129:
arch/i386/boot/compressed/../../../../lib/inflate.c: In function `gunzip':
arch/i386/boot/compressed/../../../../lib/inflate.c:1123: warning: value computed is not used
arch/i386/boot/compressed/../../../../lib/inflate.c:1124: warning: value computed is not used
arch/i386/boot/compressed/../../../../lib/inflate.c:1125: warning: value computed is not used
arch/i386/boot/compressed/../../../../lib/inflate.c:1126: warning: value computed is not used
M.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:40 ` 2.6.0-mm1 Stan Bubrouski
@ 2003-12-23 7:57 ` Andrew Walrond
0 siblings, 0 replies; 54+ messages in thread
From: Andrew Walrond @ 2003-12-23 7:57 UTC (permalink / raw)
To: linux-kernel
On Tuesday 23 Dec 2003 5:40 am, Stan Bubrouski wrote:
>
> Why do I not see the original message Subject: 2.6.0-mm1
> ???
>
> Was there ever an original message to this thread?
>
FYI I recieved the original ok.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
[not found] <15N7L-7y2-3@gated-at.bofh.it>
@ 2003-12-23 15:41 ` Pascal Schmidt
2003-12-23 16:32 ` 2.6.0-mm1 Jens Axboe
0 siblings, 1 reply; 54+ messages in thread
From: Pascal Schmidt @ 2003-12-23 15:41 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel:
> +atapi-mo-support.patch
>
> Fix support for ATAPI MO drives (needs updating to reflect the changes in
> mt-ranier-support.patch).
>
> +mt-ranier-support.patch
>
> Mt Ranier support in the CDROM uniform layer.
Since the atapi-mo patch is mine, is there something I need to do?
--
Ciao,
Pascal
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 15:41 ` 2.6.0-mm1 Pascal Schmidt
@ 2003-12-23 16:32 ` Jens Axboe
2003-12-23 16:46 ` 2.6.0-mm1 Pascal Schmidt
0 siblings, 1 reply; 54+ messages in thread
From: Jens Axboe @ 2003-12-23 16:32 UTC (permalink / raw)
To: Pascal Schmidt, Andrew Morton; +Cc: linux-kernel
On Tue, Dec 23 2003, Pascal Schmidt wrote:
> On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel:
>
> > +atapi-mo-support.patch
> >
> > Fix support for ATAPI MO drives (needs updating to reflect the changes in
> > mt-ranier-support.patch).
> >
> > +mt-ranier-support.patch
> >
> > Mt Ranier support in the CDROM uniform layer.
>
> Since the atapi-mo patch is mine, is there something I need to do?
Nah don't worry about it, Andrew and I just agreed that I'd merge the
remaining changes once 2.6.0-mm1 was up. Basically, MO needs to set
_RAM capability so we can kill the various MO checks.
Jens
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
@ 2003-12-23 16:34 Pascal Schmidt
2003-12-23 16:39 ` 2.6.0-mm1 Jens Axboe
0 siblings, 1 reply; 54+ messages in thread
From: Pascal Schmidt @ 2003-12-23 16:34 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel:
>> +atapi-mo-support.patch
>>
>> Fix support for ATAPI MO drives (needs updating to reflect the changes
>> in mt-ranier-support.patch).
> Since the atapi-mo patch is mine, is there something I need to do?
I figured it out. ;) This small additional patch on top of mm1 is
needed to get MO write support to work.
--- linux-2.6.0-mm1/drivers/cdrom/cdrom.c Tue Dec 23 17:26:27 2003
+++ linux-2.6.0-mm1-mo/drivers/cdrom/cdrom.c Tue Dec 23 17:11:50 2003
@@ -708,6 +708,8 @@ static int cdrom_open_write(struct cdrom
ret = cdrom_mrw_open_write(cdi);
else if (CDROM_CAN(CDC_DVD_RAM))
ret = cdrom_dvdram_open_write(cdi);
+ else if (CDROM_CAN(CDC_MO_DRIVE))
+ ret = 0;
return ret;
}
--
Ciao,
Pascal
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 16:34 2.6.0-mm1 Pascal Schmidt
@ 2003-12-23 16:39 ` Jens Axboe
2003-12-23 16:54 ` 2.6.0-mm1 Jens Axboe
0 siblings, 1 reply; 54+ messages in thread
From: Jens Axboe @ 2003-12-23 16:39 UTC (permalink / raw)
To: Pascal Schmidt, Andrew Morton; +Cc: linux-kernel
On Tue, Dec 23 2003, Pascal Schmidt wrote:
>
> On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel:
>
> >> +atapi-mo-support.patch
> >>
> >> Fix support for ATAPI MO drives (needs updating to reflect the changes
> >> in mt-ranier-support.patch).
> > Since the atapi-mo patch is mine, is there something I need to do?
>
> I figured it out. ;) This small additional patch on top of mm1 is
> needed to get MO write support to work.
>
>
> --- linux-2.6.0-mm1/drivers/cdrom/cdrom.c Tue Dec 23 17:26:27 2003
> +++ linux-2.6.0-mm1-mo/drivers/cdrom/cdrom.c Tue Dec 23 17:11:50 2003
> @@ -708,6 +708,8 @@ static int cdrom_open_write(struct cdrom
> ret = cdrom_mrw_open_write(cdi);
> else if (CDROM_CAN(CDC_DVD_RAM))
> ret = cdrom_dvdram_open_write(cdi);
> + else if (CDROM_CAN(CDC_MO_DRIVE))
> + ret = 0;
Still needs cleanups, as mentioned in the other mail. Let me dig out
the laptop and fix it up for posting.
Jens
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 16:32 ` 2.6.0-mm1 Jens Axboe
@ 2003-12-23 16:46 ` Pascal Schmidt
2003-12-23 16:56 ` 2.6.0-mm1 Jens Axboe
0 siblings, 1 reply; 54+ messages in thread
From: Pascal Schmidt @ 2003-12-23 16:46 UTC (permalink / raw)
To: Jens Axboe; +Cc: linux-kernel
On Tue, 23 Dec 2003, Jens Axboe wrote:
>> Since the atapi-mo patch is mine, is there something I need to do?
> Nah don't worry about it, Andrew and I just agreed that I'd merge the
> remaining changes once 2.6.0-mm1 was up. Basically, MO needs to set
> _RAM capability so we can kill the various MO checks.
Please remember that you can't send the MO drive any DVD-RAM specific
commands and expect it to work. The special-casing in the probe routine
in ide-cd is there for a reason, and I don't think calling
cdrom_dvdram_open_write would be a good idea, either. I haven't actually
looked at that routine, but if it sends anything to the drive, my MO
drive won't like it one bit. It will at best error out and then
cdrom_dvdram_open_write will error out, too, disallowing opening for
write, right?
--
Ciao,
Pascal
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 16:39 ` 2.6.0-mm1 Jens Axboe
@ 2003-12-23 16:54 ` Jens Axboe
2003-12-23 16:58 ` 2.6.0-mm1 Jens Axboe
0 siblings, 1 reply; 54+ messages in thread
From: Jens Axboe @ 2003-12-23 16:54 UTC (permalink / raw)
To: Pascal Schmidt, Andrew Morton; +Cc: linux-kernel
On Tue, Dec 23 2003, Jens Axboe wrote:
> On Tue, Dec 23 2003, Pascal Schmidt wrote:
> >
> > On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel:
> >
> > >> +atapi-mo-support.patch
> > >>
> > >> Fix support for ATAPI MO drives (needs updating to reflect the changes
> > >> in mt-ranier-support.patch).
> > > Since the atapi-mo patch is mine, is there something I need to do?
> >
> > I figured it out. ;) This small additional patch on top of mm1 is
> > needed to get MO write support to work.
> >
> >
> > --- linux-2.6.0-mm1/drivers/cdrom/cdrom.c Tue Dec 23 17:26:27 2003
> > +++ linux-2.6.0-mm1-mo/drivers/cdrom/cdrom.c Tue Dec 23 17:11:50 2003
> > @@ -708,6 +708,8 @@ static int cdrom_open_write(struct cdrom
> > ret = cdrom_mrw_open_write(cdi);
> > else if (CDROM_CAN(CDC_DVD_RAM))
> > ret = cdrom_dvdram_open_write(cdi);
> > + else if (CDROM_CAN(CDC_MO_DRIVE))
> > + ret = 0;
>
> Still needs cleanups, as mentioned in the other mail. Let me dig out
> the laptop and fix it up for posting.
A general update patch against 2.6.0-mm1, Andrew can you apply this
for now? Looks like there was a merge error with cdi->use_count as well
in mm1.
Pascal, if you could take care of the mode sense check for RO media (see
comment) that would be perfect.
diff -urp linux-2.6.0-mm1.virgin/drivers/cdrom/cdrom.c linux-2.6.0-mm1/drivers/cdrom/cdrom.c
--- linux-2.6.0-mm1.virgin/drivers/cdrom/cdrom.c 2003-12-23 17:44:54.000000000 +0100
+++ linux-2.6.0-mm1/drivers/cdrom/cdrom.c 2003-12-23 17:50:56.320349076 +0100
@@ -708,6 +708,11 @@ static int cdrom_open_write(struct cdrom
ret = cdrom_mrw_open_write(cdi);
else if (CDROM_CAN(CDC_DVD_RAM))
ret = cdrom_dvdram_open_write(cdi);
+ /*
+ * needs to really check whether media is writeable
+ */
+ else if (CDROM_CAN(CDC_MO_DRIVE))
+ ret = 0;
return ret;
}
@@ -737,7 +742,7 @@ int cdrom_open(struct cdrom_device_info
cdi->use_count++;
ret = -EROFS;
if (fp->f_mode & FMODE_WRITE) {
- if (!(CDROM_CAN(CDC_RAM) || CDROM_CAN(CDC_MO_DRIVE)))
+ if (!CDROM_CAN(CDC_RAM))
goto out;
if (cdrom_open_write(cdi))
goto out;
@@ -750,8 +755,6 @@ int cdrom_open(struct cdrom_device_info
else
ret = open_for_data(cdi);
- if (!ret) cdi->use_count++;
-
cdinfo(CD_OPEN, "Use count for \"/dev/%s\" now %d\n", cdi->name, cdi->use_count);
/* Do this on open. Don't wait for mount, because they might
not be mounting, but opening with O_NONBLOCK */
diff -urp linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.c linux-2.6.0-mm1/drivers/ide/ide-cd.c
--- linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.c 2003-12-23 17:44:54.000000000 +0100
+++ linux-2.6.0-mm1/drivers/ide/ide-cd.c 2003-12-23 17:49:12.404670677 +0100
@@ -790,8 +790,8 @@ static int cdrom_decode_status(ide_drive
* devices will return this error while flushing
* data from cache */
if (!rq->errors)
- info->write_timeout = jiffies + ATAPI_WAIT_BUSY;
- rq->errors = 1;
+ info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY;
+ ++rq->errors;
if (time_after(jiffies, info->write_timeout))
do_end_request = 1;
else {
@@ -2950,6 +2950,7 @@ int ide_cdrom_probe_capabilities (ide_dr
if (drive->media == ide_optical) {
CDROM_CONFIG_FLAGS(drive)->mo_drive = 1;
+ CDROM_CONFIG_FLAGS(drive)->ram = 1;
printk("%s: ATAPI magneto-optical drive\n", drive->name);
return nslots;
}
@@ -3281,9 +3282,7 @@ int ide_cdrom_setup (ide_drive_t *drive)
/*
* set correct block size and read-only for non-ram media
*/
- set_disk_ro(drive->disk,
- !(CDROM_CONFIG_FLAGS(drive)->ram ||
- CDROM_CONFIG_FLAGS(drive)->mo_drive));
+ set_disk_ro(drive->disk, !CDROM_CONFIG_FLAGS(drive)->ram);
blk_queue_hardsect_size(drive->queue, CD_FRAMESIZE);
#if 0
diff -urp linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.h linux-2.6.0-mm1/drivers/ide/ide-cd.h
--- linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.h 2003-12-23 17:44:54.000000000 +0100
+++ linux-2.6.0-mm1/drivers/ide/ide-cd.h 2003-12-23 17:48:19.939386898 +0100
@@ -39,7 +39,7 @@
* typical timeout for packet command
*/
#define ATAPI_WAIT_PC (60 * HZ)
-#define ATAPI_WAIT_BUSY (5 * HZ)
+#define ATAPI_WAIT_WRITE_BUSY (10 * HZ)
/************************************************************************/
--
Jens Axboe
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 16:46 ` 2.6.0-mm1 Pascal Schmidt
@ 2003-12-23 16:56 ` Jens Axboe
0 siblings, 0 replies; 54+ messages in thread
From: Jens Axboe @ 2003-12-23 16:56 UTC (permalink / raw)
To: Pascal Schmidt; +Cc: linux-kernel
On Tue, Dec 23 2003, Pascal Schmidt wrote:
> On Tue, 23 Dec 2003, Jens Axboe wrote:
>
> >> Since the atapi-mo patch is mine, is there something I need to do?
> > Nah don't worry about it, Andrew and I just agreed that I'd merge the
> > remaining changes once 2.6.0-mm1 was up. Basically, MO needs to set
> > _RAM capability so we can kill the various MO checks.
>
> Please remember that you can't send the MO drive any DVD-RAM specific
> commands and expect it to work. The special-casing in the probe routine
> in ide-cd is there for a reason, and I don't think calling
> cdrom_dvdram_open_write would be a good idea, either. I haven't actually
> looked at that routine, but if it sends anything to the drive, my MO
> drive won't like it one bit. It will at best error out and then
> cdrom_dvdram_open_write will error out, too, disallowing opening for
> write, right?
The changes are nothing like that. Don't confuse CDC_DVD_RAM and CDC_RAM
- the latter just means that it is ok to open this media for random
writes so we don't have to check for three types of different devices.
--
Jens Axboe
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 16:54 ` 2.6.0-mm1 Jens Axboe
@ 2003-12-23 16:58 ` Jens Axboe
2003-12-23 17:29 ` 2.6.0-mm1 Pascal Schmidt
0 siblings, 1 reply; 54+ messages in thread
From: Jens Axboe @ 2003-12-23 16:58 UTC (permalink / raw)
To: Pascal Schmidt, Andrew Morton; +Cc: linux-kernel
On Tue, Dec 23 2003, Jens Axboe wrote:
> - rq->errors = 1;
> + info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY;
> + ++rq->errors;
Didn't mean to change the = 1, here's an updated one.
diff -urp linux-2.6.0-mm1.virgin/drivers/cdrom/cdrom.c linux-2.6.0-mm1/drivers/cdrom/cdrom.c
--- linux-2.6.0-mm1.virgin/drivers/cdrom/cdrom.c 2003-12-23 17:44:54.000000000 +0100
+++ linux-2.6.0-mm1/drivers/cdrom/cdrom.c 2003-12-23 17:50:56.320349076 +0100
@@ -497,7 +497,7 @@ int cdrom_mrw_probe_pc(struct cdrom_devi
printk(KERN_ERR "cdrom: %s: unknown mrw mode page\n", cdi->name);
return 1;
}
-
+
int cdrom_is_mrw(struct cdrom_device_info *cdi, int *write)
{
struct cdrom_generic_command cgc;
@@ -708,6 +708,11 @@ static int cdrom_open_write(struct cdrom
ret = cdrom_mrw_open_write(cdi);
else if (CDROM_CAN(CDC_DVD_RAM))
ret = cdrom_dvdram_open_write(cdi);
+ /*
+ * needs to really check whether media is writeable
+ */
+ else if (CDROM_CAN(CDC_MO_DRIVE))
+ ret = 0;
return ret;
}
@@ -737,7 +742,7 @@ int cdrom_open(struct cdrom_device_info
cdi->use_count++;
ret = -EROFS;
if (fp->f_mode & FMODE_WRITE) {
- if (!(CDROM_CAN(CDC_RAM) || CDROM_CAN(CDC_MO_DRIVE)))
+ if (!CDROM_CAN(CDC_RAM))
goto out;
if (cdrom_open_write(cdi))
goto out;
@@ -750,8 +755,6 @@ int cdrom_open(struct cdrom_device_info
else
ret = open_for_data(cdi);
- if (!ret) cdi->use_count++;
-
cdinfo(CD_OPEN, "Use count for \"/dev/%s\" now %d\n", cdi->name, cdi->use_count);
/* Do this on open. Don't wait for mount, because they might
not be mounting, but opening with O_NONBLOCK */
diff -urp linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.c linux-2.6.0-mm1/drivers/ide/ide-cd.c
--- linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.c 2003-12-23 17:44:54.000000000 +0100
+++ linux-2.6.0-mm1/drivers/ide/ide-cd.c 2003-12-23 17:57:26.326859551 +0100
@@ -790,7 +790,7 @@ static int cdrom_decode_status(ide_drive
* devices will return this error while flushing
* data from cache */
if (!rq->errors)
- info->write_timeout = jiffies + ATAPI_WAIT_BUSY;
+ info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY;
rq->errors = 1;
if (time_after(jiffies, info->write_timeout))
do_end_request = 1;
@@ -2950,6 +2950,7 @@ int ide_cdrom_probe_capabilities (ide_dr
if (drive->media == ide_optical) {
CDROM_CONFIG_FLAGS(drive)->mo_drive = 1;
+ CDROM_CONFIG_FLAGS(drive)->ram = 1;
printk("%s: ATAPI magneto-optical drive\n", drive->name);
return nslots;
}
@@ -3281,9 +3282,7 @@ int ide_cdrom_setup (ide_drive_t *drive)
/*
* set correct block size and read-only for non-ram media
*/
- set_disk_ro(drive->disk,
- !(CDROM_CONFIG_FLAGS(drive)->ram ||
- CDROM_CONFIG_FLAGS(drive)->mo_drive));
+ set_disk_ro(drive->disk, !CDROM_CONFIG_FLAGS(drive)->ram);
blk_queue_hardsect_size(drive->queue, CD_FRAMESIZE);
#if 0
diff -urp linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.h linux-2.6.0-mm1/drivers/ide/ide-cd.h
--- linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.h 2003-12-23 17:44:54.000000000 +0100
+++ linux-2.6.0-mm1/drivers/ide/ide-cd.h 2003-12-23 17:48:19.939386898 +0100
@@ -39,7 +39,7 @@
* typical timeout for packet command
*/
#define ATAPI_WAIT_PC (60 * HZ)
-#define ATAPI_WAIT_BUSY (5 * HZ)
+#define ATAPI_WAIT_WRITE_BUSY (10 * HZ)
/************************************************************************/
--
Jens Axboe
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
[not found] <20031223170633.GG1601@suse.de>
@ 2003-12-23 17:15 ` Pascal Schmidt
0 siblings, 0 replies; 54+ messages in thread
From: Pascal Schmidt @ 2003-12-23 17:15 UTC (permalink / raw)
To: Jens Axboe; +Cc: linux-kernel
On Tue, 23 Dec 2003, Jens Axboe wrote:
> > > Pascal, if you could take care of the mode sense check for RO media (see
> > > comment) that would be perfect.
[...]
> Alright, I'll cook it up then.
Much appreciated.
> Yes it will, I don't want to allow write opens on RO media though. It's
> a lot less confusing that way.
Agreed, I'll just have to leave it to you since I don't know how to
implement it.
--
Ciao,
Pascal
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
` (3 preceding siblings ...)
2003-12-23 7:30 ` 2.6.0-mm1 Martin J. Bligh
@ 2003-12-23 17:29 ` Tom Rini
2003-12-23 17:31 ` 2.6.0-mm1 Tom Rini
2003-12-23 21:08 ` 2.6.0-mm1 viro
` (3 subsequent siblings)
8 siblings, 1 reply; 54+ messages in thread
From: Tom Rini @ 2003-12-23 17:29 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm
On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote:
[snip]
> moto-ppc32-booting-fix.patch
> Fix booting on a number of Motorola PPC32 machines
The following, based on comments from Keith Owens is better, please
replace, thanks:
===== arch/ppc/boot/simple/Makefile 1.23 vs edited =====
--- 1.23/arch/ppc/boot/simple/Makefile Mon Sep 15 01:01:24 2003
+++ edited/arch/ppc/boot/simple/Makefile Tue Dec 23 09:58:53 2003
@@ -76,6 +76,7 @@
# The rest will be unset.
motorola := $(CONFIG_MCPN765)$(CONFIG_MVME5100)$(CONFIG_PRPMC750) \
$(CONFIG_PRPMC800)$(CONFIG_LOPEC)$(CONFIG_PPLUS)
+motorola := $(strip $(motorola))
pcore := $(CONFIG_PCORE)$(CONFIG_POWERPMC250)
zimage-$(motorola) := zImage-PPLUS
--
Tom Rini
http://gate.crashing.org/~trini/
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 16:58 ` 2.6.0-mm1 Jens Axboe
@ 2003-12-23 17:29 ` Pascal Schmidt
2003-12-23 18:49 ` 2.6.0-mm1 Jens Axboe
0 siblings, 1 reply; 54+ messages in thread
From: Pascal Schmidt @ 2003-12-23 17:29 UTC (permalink / raw)
To: Jens Axboe; +Cc: linux-kernel
On Tue, 23 Dec 2003, Jens Axboe wrote:
> On Tue, Dec 23 2003, Jens Axboe wrote:
> > - rq->errors = 1;
> > + info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY;
> > + ++rq->errors;
>
> Didn't mean to change the = 1, here's an updated one.
Applied, compiled, and tested. MO drive workes just fine with the
updated patch applied.
--
Ciao,
Pascal
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 17:29 ` 2.6.0-mm1 Tom Rini
@ 2003-12-23 17:31 ` Tom Rini
0 siblings, 0 replies; 54+ messages in thread
From: Tom Rini @ 2003-12-23 17:31 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm
On Tue, Dec 23, 2003 at 10:29:07AM -0700, Tom Rini wrote:
> On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote:
>
> [snip]
> > moto-ppc32-booting-fix.patch
> > Fix booting on a number of Motorola PPC32 machines
>
> The following, based on comments from Keith Owens is better, please
> replace, thanks:
[snip]
The following patch depends on the above, and fixes the 'znetboot' and
'znetbootrd' targets so that they work again (If you would prefer things
in a different format, please let me know). Thanks:
- Update the comments to reflect how things work with the correct
usages now.
- Fix the znetboot / znetbootrd targets. We now always set end-y,
and use this to figure out what image will be tftpboot'ed.
===== arch/ppc/boot/simple/Makefile 1.24 vs edited =====
--- 1.24/arch/ppc/boot/simple/Makefile Tue Dec 23 10:00:06 2003
+++ edited/arch/ppc/boot/simple/Makefile Tue Dec 23 10:01:04 2003
@@ -4,30 +4,38 @@
# Author: Tom Rini <trini@mvista.com>
#
# Notes:
-# (1) For machine targets which produce more than one image, define
-# ZNETBOOT and ZNETBOOTRD to the image which should be available for
-# 'znetboot' and 'znetboot.initrd`
-# (2) Also, for machine targets which just need to remove the ELF header,
-# define END to be the machine name you want in the image.
-# (3) For machine targets which use the mktree program, define END to be
-# the machine name you want in the image, and you can optionally set
-# ENTRYPOINT which the image should be loaded at. The optimal setting
-# for ENTRYPOINT is the link address.
+# (1) For machines that do not want to use the ELF image directly (including
+# stripping just the ELF header off), they must set the variables
+# zimage-$(CONFIG_MACHINE) and zimagerd-$(CONFIG_MACHINE) to the target
+# that produces the desired image and they must set end-$(CONFIG_MACHINE)
+# to what will be suffixed to the image filename.
+# (2) Regardless of (1), to have the resulting image be something other
+# than 'zImage.elf', set end-$(CONFIG_MACHINE) to be the suffix used for
+# the zImage, znetboot, and znetbootrd targets.
+# (3) For machine targets which use the mktree program, you can optionally
+# set entrypoint-$(CONFIG_MACHINE) to the location which the image should be
+# loaded at. The optimal setting for entrypoint-$(CONFIG_MACHINE) is the link
+# address.
# (4) It is advisable to pass in the memory size using BI_MEMSIZE and
# get_mem_size(), which is memory controller dependent. Add in the correct
-# XXX_memory.o file for this to work, as well as editing the $(MISC) file.
-
+# XXX_memory.o file for this to work, as well as editing the
+# misc-$(CONFIG_MACHINE) variable.
boot := arch/ppc/boot
common := $(boot)/common
utils := $(boot)/utils
bootlib := $(boot)/lib
images := $(boot)/images
+tftpboot := /tftpboot
# Normally, we use the 'misc.c' file for decompress_kernel and
# whatnot. Sometimes we need to override this however.
misc-y := misc.o
+# Normally, we have our images end in .elf, but something we want to
+# change this.
+end-y := elf
+
# Additionally, we normally don't need to mess with the L2 / L3 caches
# if present on 'classic' PPC.
cacheflag-y := -DCLEAR_CACHES=""
@@ -41,35 +49,31 @@
zimage-$(CONFIG_IBM_OPENBIOS) := zImage-TREE
zimageinitrd-$(CONFIG_IBM_OPENBIOS) := zImage.initrd-TREE
end-$(CONFIG_IBM_OPENBIOS) := treeboot
- tftpimage-$(CONFIG_IBM_OPENBIOS) := /tftpboot/zImage.$(end-y)
misc-$(CONFIG_IBM_OPENBIOS) := misc-embedded.o
- tftpimage-$(CONFIG_EMBEDDEDBOOT) := /tftpboot/zImage.embedded
+ end-$(CONFIG_EMBEDDEDBOOT) := embedded
misc-$(CONFIG_EMBEDDEDBOOT) := misc-embedded.o
zimage-$(CONFIG_EBONY) := zImage-TREE
zimageinitrd-$(CONFIG_EBONY) := zImage.initrd-TREE
end-$(CONFIG_EBONY) := ebony
entrypoint-$(CONFIG_EBONY) := 0x01000000
- tftpimage-$(CONFIG_EBONY) := /tftpboot/zImage.$(end-y)
zimage-$(CONFIG_OCOTEA) := zImage-TREE
zimageinitrd-$(CONFIG_OCOTEA) := zImage.initrd-TREE
end-$(CONFIG_OCOTEA) := ocotea
entrypoint-$(CONFIG_OCOTEA) := 0x01000000
- tftpimage-$(CONFIG_OCOTEA) := /tftpboot/zImage.$(end-y)
extra.o-$(CONFIG_EV64260) := direct.o misc-ev64260.o
- tftpimage-$(CONFIG_EV64260) := /tftpboot/zImage.ev64260
+ end-$(CONFIG_EV64260) := ev64260
cacheflag-$(CONFIG_EV64260) := -include $(clear_L2_L3)
zimage-$(CONFIG_GEMINI) := zImage-STRIPELF
zimageinitrd-$(CONFIG_GEMINI) := zImage.initrd-STRIPELF
end-$(CONFIG_GEMINI) := gemini
- tftpimage-$(CONFIG_GEMINI) := /tftpboot/zImage.$(end-y)
extra.o-$(CONFIG_K2) := legacy.o
- tftpimage-$(CONFIG_K2) := /tftpboot/zImage.k2
+ end-$(CONFIG_K2) := k2
cacheflag-$(CONFIG_K2) := -include $(clear_L2_L3)
# kconfig 'feature', only one of these will ever be 'y' at a time.
@@ -81,9 +85,7 @@
zimage-$(motorola) := zImage-PPLUS
zimageinitrd-$(motorola) := zImage.initrd-PPLUS
- tftpimage-$(motorola) := /tftpboot/zImage.pplus
- znetboot-$(motorola) := zImage.pplus
- znetbootrd-$(motorola) := zImage.initrd.pplus
+ end-$(motorola) := pplus
# Overrides previous assingment
extra.o-$(CONFIG_PPLUS) := legacy.o
@@ -92,10 +94,9 @@
zimageinitrd-$(pcore) := zImage.initrd-STRIPELF
extra.o-$(pcore) := chrpmap.o
end-$(pcore) := pcore
- tftpimage-$(pcore) := /tftpboot/zImage.$(end-y)
cacheflag-$(pcore) := -include $(clear_L2_L3)
- tftpimage-$(CONFIG_SANDPOINT) := /tftpboot/zImage.sandpoint
+ end-$(CONFIG_SANDPOINT) := sandpoint
cacheflag-$(CONFIG_SANDPOINT) := -include $(clear_L2_L3)
zimage-$(CONFIG_SPRUCE) := zImage-TREE
@@ -103,11 +104,9 @@
end-$(CONFIG_SPRUCE) := spruce
entrypoint-$(CONFIG_SPRUCE) := 0x00800000
misc-$(CONFIG_SPRUCE) := misc-spruce.o
- tftpimage-$(CONFIG_SPRUCE) := /tftpboot/zImage.$(end-y)
-
-# tftp image is prefixed with .smp if compiled for SMP
-tftpimage-$(CONFIG_SMP) += .smp
+# SMP images should have a '.smp' suffix.
+ end-$(CONFIG_SMP) += .smp
# This is a treeboot that needs init functions until the
# boot rom is sorted out (i.e. this is short lived)
@@ -181,18 +180,10 @@
rm -f $(obj)/zvmlinux.initrd
znetboot: zImage
-ifneq ($(ZNETBOOT),)
- cp $(images)/$(ZNETBOOT) $(tftpimage-y)
-else
- cp $(images)/zImage.* $(tftpimage-y)
-endif
+ cp $(images)/zImage.$(end-y) $(tftpboot)/zImage.$(end-y)
znetboot.initrd: zImage.initrd
-ifneq ($(znetbootrd-y),)
- cp $(images)/$(znetbootrd-y) $(tftpimage-y)
-else
- cp $(images)/zImage.* $(tftpimage-y)
-endif
+ cp $(images)/zImage.initrd.$(end-y) $(tftpboot)/zImage.initrd.$(end-y)
$(images)/zImage-STRIPELF: $(obj)/zvmlinux
dd if=$(obj)/zvmlinux of=$(images)/zImage.$(end-y) skip=64 bs=1k
--
Tom Rini
http://gate.crashing.org/~trini/
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 17:29 ` 2.6.0-mm1 Pascal Schmidt
@ 2003-12-23 18:49 ` Jens Axboe
0 siblings, 0 replies; 54+ messages in thread
From: Jens Axboe @ 2003-12-23 18:49 UTC (permalink / raw)
To: Pascal Schmidt; +Cc: linux-kernel
On Tue, Dec 23 2003, Pascal Schmidt wrote:
> On Tue, 23 Dec 2003, Jens Axboe wrote:
>
> > On Tue, Dec 23 2003, Jens Axboe wrote:
> > > - rq->errors = 1;
> > > + info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY;
> > > + ++rq->errors;
> >
> > Didn't mean to change the = 1, here's an updated one.
>
> Applied, compiled, and tested. MO drive workes just fine with the
> updated patch applied.
Great, thanks for testing.
Jens
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
` (4 preceding siblings ...)
2003-12-23 17:29 ` 2.6.0-mm1 Tom Rini
@ 2003-12-23 21:08 ` viro
2003-12-24 13:09 ` 2.6.0-mm1 William Lee Irwin III
` (2 subsequent siblings)
8 siblings, 0 replies; 54+ messages in thread
From: viro @ 2003-12-23 21:08 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm
On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote:
> +inode-i_sb-checks.patch
>
> Add checks for null inode->i_sb in core VFS (we're still arguing about this)
They should be replaced with BUG_ON() or removed.
> +name_to_dev_t-fix.patch
>
> Don't replace slashes in names to `.'. Replace them with `!' instead. No
> clue why, nobody tells me anything.
Take a look at /sys/block/ and you'll see - when we register disks, we mangle
the disk names that contain slashes (e.g. cciss/c0d0) replacing them with '!'
in corresponding sysfs names. So name_to_dev_t() should mangle the name in
the same way before looking for it in /sys/block.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
@ 2003-12-24 9:59 GCS
2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton
2003-12-24 14:38 ` 2.6.0-mm1 GCS
0 siblings, 2 replies; 54+ messages in thread
From: GCS @ 2003-12-24 9:59 UTC (permalink / raw)
To: linux-kernel
Hi,
On Tue, Dec 23, 2003 at 05:11:31AM +0200, Andrew Morton <akpm@osdl.org> wrote:
> It would be appreciated if people who have
> significant patches in -mm could retest please.
It seems I can write CDs on my laptop now. AFAICR I was last trying it on
test8, but it was the same: if the image is over ~400Mb, the machine
freezes hard. If it's shorter, then it's ok, but still some lock or sth
is not unlocked, as the CPU is used more and more about five secs by one
or two percent. Sooner or later it's crashed as well, but I could
restart the machine before that happened. Rebooting to 2.4.2x and
writing CDs there was working all the time.
So I do not know if it's fixed since test8, or in 2.6.0-mm1, but I am
happy with it. Also, I have two problems with 2.6.0-mm1:
- I can not deselect CONFIG_SCSI, only module or built-in available.
Maybe something is depend on it, but could not figure out what (no
CONFIG_BLK_DEV_IDESCSI, nothing is selected under CONFIG_SCSI).
- I have a synaptics touchpad, which is detected correctly, but only
works if I set psmouse_noext=1. Under vanilla 2.6.0 it still works this
way, but with 2.6.0-mm1 it works only on the console, but not under
XFree86. Strange, as gpm interprets the input and pipes thru gpmdata
to XFree86 4.3.0. Any idea what broke this configuration?
Thanks,
GCS
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-24 9:59 2.6.0-mm1 GCS
@ 2003-12-24 11:32 ` Andrew Morton
2003-12-24 11:53 ` 2.6.0-mm1 GCS
` (2 more replies)
2003-12-24 14:38 ` 2.6.0-mm1 GCS
1 sibling, 3 replies; 54+ messages in thread
From: Andrew Morton @ 2003-12-24 11:32 UTC (permalink / raw)
To: GCS; +Cc: linux-kernel, Peter Osterlund, Dmitry Torokhov
GCS <gcs@lsc.hu> wrote:
>
> Hi,
>
> On Tue, Dec 23, 2003 at 05:11:31AM +0200, Andrew Morton <akpm@osdl.org> wrote:
>
> > It would be appreciated if people who have
> > significant patches in -mm could retest please.
> It seems I can write CDs on my laptop now. AFAICR I was last trying it on
> test8, but it was the same: if the image is over ~400Mb, the machine
> freezes hard. If it's shorter, then it's ok, but still some lock or sth
> is not unlocked, as the CPU is used more and more about five secs by one
> or two percent. Sooner or later it's crashed as well, but I could
> restart the machine before that happened. Rebooting to 2.4.2x and
> writing CDs there was working all the time.
> So I do not know if it's fixed since test8, or in 2.6.0-mm1, but I am
> happy with it. Also, I have two problems with 2.6.0-mm1:
> - I can not deselect CONFIG_SCSI, only module or built-in available.
> Maybe something is depend on it, but could not figure out what (no
> CONFIG_BLK_DEV_IDESCSI, nothing is selected under CONFIG_SCSI).
Yes, this part of the config system is hard. It always has been. It's
similar to "wtf do I have to enable to make the <foo> menu appear.
I bit of grepping tells us that CONFIG_USB_STORAGE turns on CONFIG_SCSI.
> - I have a synaptics touchpad, which is detected correctly, but only
> works if I set psmouse_noext=1. Under vanilla 2.6.0 it still works this
> way, but with 2.6.0-mm1 it works only on the console, but not under
> XFree86. Strange, as gpm interprets the input and pipes thru gpmdata
> to XFree86 4.3.0. Any idea what broke this configuration?
Peter or Dmitry may be able to tell us.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton
@ 2003-12-24 11:53 ` GCS
2003-12-24 12:23 ` 2.6.0-mm1 GCS
2003-12-24 12:47 ` 2.6.0-mm1 Thomas Molina
2003-12-25 9:11 ` 2.6.0-mm1 Dmitry Torokhov
2 siblings, 1 reply; 54+ messages in thread
From: GCS @ 2003-12-24 11:53 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, Peter Osterlund, Dmitry Torokhov
On Wed, Dec 24, 2003 at 03:32:00AM -0800, Andrew Morton <akpm@osdl.org> wrote:
> I bit of grepping tells us that CONFIG_USB_STORAGE turns on CONFIG_SCSI.
Thanks! Never throught. I could come up with this:
find . -name Kconfig| xargs grep --colour 'depends.* SCSI'
(Execute in the kernel tree, and replace SCSI with whatever you like;
may help others with similar questions).
> Peter or Dmitry may be able to tell us.
IMHO it's either:
serio-04-synaptics-cleanup.patch
serio-06-synaptics-use-reconnect.patch
synaptics-powerpro-fix.patch
serio-pm-fix.patch
input-02-add-psmouse_proto.patch (?)
input-05-psmouse-fixes.patch
input-07-remove-synaptics-config-option.patch (maybe?)
input-08-synaptics-protocol-discovery.patch
Thus meanwhile I try to revert them. Anyway, as -mm1 is already bigger,
is it possible that you release 2.6.1 in this year with some/most of the
fixes in mm1?
GCS
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-24 11:53 ` 2.6.0-mm1 GCS
@ 2003-12-24 12:23 ` GCS
2003-12-24 15:17 ` 2.6.0-mm1 Dmitry Torokhov
0 siblings, 1 reply; 54+ messages in thread
From: GCS @ 2003-12-24 12:23 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, Peter Osterlund, Dmitry Torokhov
On Wed, Dec 24, 2003 at 12:53:42PM +0100, GCS <gcs@lsc.hu> wrote:
> input-02-add-psmouse_proto.patch (?)
Just found out psmouse_noext is deprecated. I have specified
psmouse_proto then, but imps and exps (and bare too, but I have not
tested it, as reading the code it seems psmouse_noext falls back to
bare) are the same. On the console touchpad is working, under XFree86
4.3.0 is not. To be more specific, the buttons do work, but I can not
move the pointer at all. Well, first I thought the middle two buttons
are for scrolling, as they are placed (and IIRC, they do scroll under
m$ win), but the top button is like the left button and the bottom button
is for paste, ie middle button on three buttons mices.
GCS
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton
2003-12-24 11:53 ` 2.6.0-mm1 GCS
@ 2003-12-24 12:47 ` Thomas Molina
2003-12-25 9:11 ` 2.6.0-mm1 Dmitry Torokhov
2 siblings, 0 replies; 54+ messages in thread
From: Thomas Molina @ 2003-12-24 12:47 UTC (permalink / raw)
To: Andrew Morton; +Cc: Kernel Mailing List
On Wed, 24 Dec 2003, Andrew Morton wrote:
> > - I have a synaptics touchpad, which is detected correctly, but only
> > works if I set psmouse_noext=1. Under vanilla 2.6.0 it still works this
> > way, but with 2.6.0-mm1 it works only on the console, but not under
> > XFree86. Strange, as gpm interprets the input and pipes thru gpmdata
> > to XFree86 4.3.0. Any idea what broke this configuration?
>
> Peter or Dmitry may be able to tell us.
On the other hand, the synaptics touchpad on my laptop works under
2.6.0-mm1 without the need to use the above parameter. I don't get the
jitter I reported for vanilla 2.6.0 synaptics support, but I do get an
occasional small mouse jump.
Other than that, 2.6.0-mm1 appears to be working well on my Presario
12XL325 laptop.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
` (5 preceding siblings ...)
2003-12-23 21:08 ` 2.6.0-mm1 viro
@ 2003-12-24 13:09 ` William Lee Irwin III
2003-12-24 14:26 ` 2.6.0-mm1 William Lee Irwin III
2003-12-24 15:39 ` 2.6.0-mm1 Gene Heskett
2003-12-28 10:58 ` 2.6.0-mm1 Christoph Hellwig
8 siblings, 1 reply; 54+ messages in thread
From: William Lee Irwin III @ 2003-12-24 13:09 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm
On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/
> Quite a lot of new material here. It would be appreciated if people who have
> significant patches in -mm could retest please.
ptecache refresh. Includes the shrink_slab() and smp_local_irq_*
suggestions as well as a fix for IPI recursion found while running
hackbench on -wli, moving the "don't shrink lowmem slabs if gfp_mask
wants highmem" logic into the shrinkers themselves, and converting
shrink_pagetable_cache() to use on_each_cpu().
How's this look?
-- wli
diff -prauN mm1-2.6.0-1/arch/i386/mm/init.c mm1-2.6.0-2/arch/i386/mm/init.c
--- mm1-2.6.0-1/arch/i386/mm/init.c 2003-12-24 04:02:51.000000000 -0800
+++ mm1-2.6.0-2/arch/i386/mm/init.c 2003-12-24 04:06:34.000000000 -0800
@@ -465,7 +465,7 @@ void __init mem_init(void)
/* this will put all low memory onto the freelists */
totalram_pages += __free_all_bootmem();
-
+ tlb_init();
reservedpages = 0;
for (tmp = 0; tmp < max_low_pfn; tmp++)
/*
diff -prauN mm1-2.6.0-1/arch/i386/mm/pgtable.c mm1-2.6.0-2/arch/i386/mm/pgtable.c
--- mm1-2.6.0-1/arch/i386/mm/pgtable.c 2003-12-24 04:02:51.000000000 -0800
+++ mm1-2.6.0-2/arch/i386/mm/pgtable.c 2003-12-24 04:40:50.000000000 -0800
@@ -1,5 +1,6 @@
/*
* linux/arch/i386/mm/pgtable.c
+ * highpte-compatible pte caching, William Irwin, IBM, June 2003
*/
#include <linux/config.h>
@@ -13,6 +14,7 @@
#include <linux/slab.h>
#include <linux/pagemap.h>
#include <linux/spinlock.h>
+#include <linux/init.h>
#include <asm/system.h>
#include <asm/pgtable.h>
@@ -139,18 +141,70 @@ pte_t *pte_alloc_one_kernel(struct mm_st
return pte;
}
-struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
+void tlb_init(void)
{
- struct page *pte;
+ int cpu;
+ for (cpu = 0; cpu < NR_CPUS; ++cpu) {
+ int zone;
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, cpu);
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ INIT_LIST_HEAD(&tlb->active_list[zone]);
+ INIT_LIST_HEAD(&tlb->ready_list[zone]);
+ }
+ }
+}
-#ifdef CONFIG_HIGHPTE
- pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT, 0);
-#else
- pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT, 0);
-#endif
- if (pte)
- clear_highpage(pte);
- return pte;
+static inline struct page *pte_alloc_fresh(int gfp_mask)
+{
+ struct page *page = alloc_page(gfp_mask);
+ if (page) {
+ clear_highpage(page);
+ if (TestSetPagePTE(page))
+ BUG();
+ }
+ return page;
+}
+
+static inline int zone_high(struct zone *zone)
+{
+ if (!zone)
+ return 1;
+ else
+ return zone - zone->zone_pgdat->node_zones >= ZONE_HIGHMEM;
+}
+
+static inline struct page *pte_alloc_ready(int gfp_flags)
+{
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ unsigned long flags;
+ struct page *page = NULL;
+
+ local_irq_save(flags);
+ if (tlb->nr_pte_ready) {
+ int z;
+ for (z = MAX_ZONE_ID - 1; z >= 0; --z) {
+ struct zone *zone = zone_table[z];
+ if (!(gfp_flags & __GFP_HIGHMEM) && zone_high(zone))
+ continue;
+ if (!list_empty(&tlb->ready_list[z]))
+ break;
+ }
+ page = list_entry(tlb->ready_list[z].next, struct page, list);
+ if (TestSetPagePTE(page))
+ BUG();
+ list_del(&page->list);
+ tlb->ready_count[z]--;
+ tlb->nr_pte_ready--;
+ }
+ local_irq_restore(flags);
+ put_cpu();
+ return page;
+}
+
+struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
+{
+ struct page *page = pte_alloc_ready(GFP_PTE);
+ return page ? page : pte_alloc_fresh(GFP_PTE);
}
void pmd_ctor(void *pmd, kmem_cache_t *cache, unsigned long flags)
@@ -320,3 +374,45 @@ out_free:
kmem_cache_free(pgd_cache, pgd);
}
+static void shrink_cpu_pagetable_cache(void *__gfp_mask)
+{
+ int zone, high, gfp_mask = (int)__gfp_mask;
+ unsigned long flags;
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+
+ high = !!(gfp_mask & __GFP_HIGHMEM);
+ local_irq_save(flags);
+ if (!tlb->nr_pte_ready)
+ goto out;
+
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ if (list_empty(&tlb->ready_list[zone]))
+ continue;
+ if (!high && zone_high(zone_table[zone]))
+ continue;
+
+ free_pages_bulk(zone_table[zone],
+ tlb->ready_count[zone],
+ &tlb->ready_list[zone],
+ 0);
+ tlb->nr_pte_ready -= tlb->ready_count[zone];
+ tlb->ready_count[zone] = 0;
+ }
+out:
+ local_irq_restore(flags);
+ put_cpu();
+}
+
+static int shrink_pagetable_cache(int nr_to_scan, unsigned int gfp_mask)
+{
+ on_each_cpu(shrink_cpu_pagetable_cache, (void *)gfp_mask, 1, 1);
+ return 1;
+}
+
+static __init int init_pagetable_cache_shrinker(void)
+{
+ set_shrinker(1, shrink_pagetable_cache);
+ return 0;
+}
+
+__initcall(init_pagetable_cache_shrinker);
diff -prauN mm1-2.6.0-1/fs/dcache.c mm1-2.6.0-2/fs/dcache.c
--- mm1-2.6.0-1/fs/dcache.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/fs/dcache.c 2003-12-24 04:15:28.000000000 -0800
@@ -642,6 +642,9 @@ void shrink_dcache_anon(struct hlist_hea
*/
static int shrink_dcache_memory(int nr, unsigned int gfp_mask)
{
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
+
if (nr) {
/*
* Nasty deadlock avoidance.
diff -prauN mm1-2.6.0-1/fs/dquot.c mm1-2.6.0-2/fs/dquot.c
--- mm1-2.6.0-1/fs/dquot.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/fs/dquot.c 2003-12-24 04:15:47.000000000 -0800
@@ -391,6 +391,9 @@ static int shrink_dqcache_memory(int nr,
{
int ret;
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
+
spin_lock(&dq_list_lock);
if (nr)
prune_dqcache(nr);
diff -prauN mm1-2.6.0-1/fs/inode.c mm1-2.6.0-2/fs/inode.c
--- mm1-2.6.0-1/fs/inode.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/fs/inode.c 2003-12-24 04:16:14.000000000 -0800
@@ -468,6 +468,9 @@ static void prune_icache(int nr_to_scan)
*/
static int shrink_icache_memory(int nr, unsigned int gfp_mask)
{
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
+
if (nr) {
/*
* Nasty deadlock avoidance. We may hold various FS locks,
diff -prauN mm1-2.6.0-1/fs/mbcache.c mm1-2.6.0-2/fs/mbcache.c
--- mm1-2.6.0-1/fs/mbcache.c 2003-12-17 18:59:53.000000000 -0800
+++ mm1-2.6.0-2/fs/mbcache.c 2003-12-24 04:16:50.000000000 -0800
@@ -176,6 +176,9 @@ mb_cache_shrink_fn(int nr_to_scan, unsig
struct list_head *l, *ltmp;
int count = 0;
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
+
spin_lock(&mb_cache_spinlock);
list_for_each(l, &mb_cache_list) {
struct mb_cache *cache =
diff -prauN mm1-2.6.0-1/fs/xfs/quota/xfs_qm.c mm1-2.6.0-2/fs/xfs/quota/xfs_qm.c
--- mm1-2.6.0-1/fs/xfs/quota/xfs_qm.c 2003-12-17 18:58:05.000000000 -0800
+++ mm1-2.6.0-2/fs/xfs/quota/xfs_qm.c 2003-12-24 04:17:50.000000000 -0800
@@ -2208,6 +2208,8 @@ xfs_qm_shake(int nr_to_scan, unsigned in
if (!(gfp_mask & __GFP_WAIT))
return 0;
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
if (!xfs_Gqm)
return 0;
diff -prauN mm1-2.6.0-1/include/asm-i386/pgalloc.h mm1-2.6.0-2/include/asm-i386/pgalloc.h
--- mm1-2.6.0-1/include/asm-i386/pgalloc.h 2003-12-17 18:58:07.000000000 -0800
+++ mm1-2.6.0-2/include/asm-i386/pgalloc.h 2003-12-24 04:06:34.000000000 -0800
@@ -31,14 +31,6 @@ static inline void pte_free_kernel(pte_t
free_page((unsigned long)pte);
}
-static inline void pte_free(struct page *pte)
-{
- __free_page(pte);
-}
-
-
-#define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte))
-
/*
* allocating and freeing a pmd is trivial: the 1-entry pmd is
* inside the pgd, so has no extra memory associated with it.
@@ -47,9 +39,26 @@ static inline void pte_free(struct page
#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
#define pmd_free(x) do { } while (0)
-#define __pmd_free_tlb(tlb,x) do { } while (0)
#define pgd_populate(mm, pmd, pte) BUG()
#define check_pgt_cache() do { } while (0)
+#include <asm/tlb.h>
+
+static inline void pte_free(struct page *page)
+{
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ tlb_remove_page(tlb, page);
+ put_cpu();
+}
+
+static inline void pte_free_tlb(struct mmu_gather *tlb, struct page *page)
+{
+ tlb_remove_page(tlb, page);
+}
+
+static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
+{
+}
+
#endif /* _I386_PGALLOC_H */
diff -prauN mm1-2.6.0-1/include/asm-i386/tlb.h mm1-2.6.0-2/include/asm-i386/tlb.h
--- mm1-2.6.0-1/include/asm-i386/tlb.h 2003-12-17 18:58:38.000000000 -0800
+++ mm1-2.6.0-2/include/asm-i386/tlb.h 2003-12-24 04:41:00.000000000 -0800
@@ -1,10 +1,52 @@
#ifndef _I386_TLB_H
#define _I386_TLB_H
+/*
+ * include/asm-i386/tlb.h
+ * (C) June 2003 William Irwin, IBM
+ * Routines for pagetable caching and release.
+ */
+
+#include <linux/config.h>
+#include <linux/mm.h>
+#include <linux/swap.h>
+#include <linux/gfp.h>
+#include <linux/list.h>
+#include <linux/percpu.h>
+#include <asm/tlbflush.h>
+
+#ifdef CONFIG_HIGHPTE
+#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT|__GFP_HIGHMEM)
+#else
+#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT)
+#endif
+
+#define PG_PTE PG_arch_1
+#define NR_PTE 128
+#define FREE_PTE_NR NR_PTE
+#define NR_NONPTE 512
+#define MAX_ZONE_ID (MAX_NUMNODES * MAX_NR_ZONES)
+
+#define PagePTE(page) test_bit(PG_PTE, &(page)->flags)
+#define SetPagePTE(page) set_bit(PG_PTE, &(page)->flags)
+#define ClearPagePTE(page) clear_bit(PG_PTE, &(page)->flags)
+#define TestSetPagePTE(page) test_and_set_bit(PG_PTE, &(page)->flags)
+#define TestClearPagePTE(page) test_and_clear_bit(PG_PTE, &(page)->flags)
+#define PageZoneID(page) ((page)->flags >> ZONE_SHIFT)
/*
- * x86 doesn't need any special per-pte or
- * per-vma handling..
+ * vmscan.c does smp_call_function() to shoot down cached pagetables under
+ * memory pressure.
*/
+struct mmu_gather {
+ struct mm_struct *mm;
+ int nr_pte_active, nr_pte_ready, nr_nonpte, need_flush, fullmm, freed;
+ struct list_head active_list[MAX_ZONE_ID], ready_list[MAX_ZONE_ID];
+ int active_count[MAX_ZONE_ID], ready_count[MAX_ZONE_ID];
+ struct page *nonpte[NR_NONPTE];
+};
+
+DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
+
#define tlb_start_vma(tlb, vma) do { } while (0)
#define tlb_end_vma(tlb, vma) do { } while (0)
#define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
@@ -15,6 +57,119 @@
*/
#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
-#include <asm-generic/tlb.h>
+void tlb_init(void);
-#endif
+static inline
+struct mmu_gather *tlb_gather_mmu(struct mm_struct *mm, unsigned int flush)
+{
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ tlb->mm = mm;
+ tlb->fullmm = flush;
+ tlb->freed = 0;
+ put_cpu();
+ return tlb;
+}
+
+static inline
+void tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *pte, unsigned long addr)
+{
+ tlb->need_flush = 1;
+}
+
+static inline
+void tlb_flush_ready(struct mmu_gather *tlb)
+{
+ int zone;
+
+ for (zone = 0; tlb->nr_pte_ready >= NR_PTE && zone < MAX_ZONE_ID; ++zone) {
+ if (!tlb->ready_count[zone])
+ continue;
+
+ free_pages_bulk(zone_table[zone],
+ tlb->ready_count[zone],
+ &tlb->ready_list[zone],
+ 0);
+ tlb->nr_pte_ready -= tlb->ready_count[zone];
+ tlb->ready_count[zone] = 0;
+ }
+}
+
+static inline
+void tlb_flush_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
+{
+ int zone;
+ unsigned long flags;
+
+ if (!tlb->need_flush && tlb->nr_nonpte < NR_NONPTE)
+ return;
+
+ tlb->need_flush = 0;
+ tlb_flush(tlb);
+
+ local_irq_save(flags);
+
+ if (tlb->nr_nonpte) {
+ free_pages_and_swap_cache(tlb->nonpte, tlb->nr_nonpte);
+ tlb->nr_nonpte = 0;
+ }
+
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ if (!tlb->active_count[zone])
+ continue;
+
+ list_splice_init(&tlb->active_list[zone], &tlb->ready_list[zone]);
+ tlb->ready_count[zone] += tlb->active_count[zone];
+ tlb->active_count[zone] = 0;
+ }
+ tlb->nr_pte_ready += tlb->nr_pte_active;
+ tlb->nr_pte_active = 0;
+ if (tlb->nr_pte_ready >= NR_PTE)
+ tlb_flush_ready(tlb);
+
+ local_irq_restore(flags);
+}
+
+static inline
+void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
+{
+ if (tlb->mm->rss >= tlb->freed)
+ tlb->mm->rss -= tlb->freed;
+ else
+ tlb->mm->rss = 0;
+ tlb_flush_mmu(tlb, start, end);
+}
+
+static inline
+void tlb_remove_nonpte_page(struct mmu_gather *tlb, struct page *page)
+{
+ tlb->nonpte[tlb->nr_nonpte] = page;
+ tlb->nr_nonpte++;
+ if (tlb->nr_nonpte >= NR_NONPTE)
+ tlb_flush_mmu(tlb, 0, 0);
+}
+
+static inline
+void tlb_remove_pte_page(struct mmu_gather *tlb, struct page *page)
+{
+ int zone = PageZoneID(page);
+ ClearPagePTE(page);
+ tlb->nr_pte_active++;
+ tlb->active_count[zone]++;
+ list_add(&page->list, &tlb->active_list[zone]);
+}
+
+static inline
+void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
+{
+ unsigned long flags;
+
+ local_irq_save(flags);
+ tlb->need_flush = 1;
+ if (PagePTE(page))
+ tlb_remove_pte_page(tlb, page);
+ else
+ tlb_remove_nonpte_page(tlb, page);
+ local_irq_restore(flags);
+}
+
+#endif /* _I386_TLB_H */
diff -prauN mm1-2.6.0-1/include/linux/gfp.h mm1-2.6.0-2/include/linux/gfp.h
--- mm1-2.6.0-1/include/linux/gfp.h 2003-12-17 18:58:28.000000000 -0800
+++ mm1-2.6.0-2/include/linux/gfp.h 2003-12-24 04:06:34.000000000 -0800
@@ -79,6 +79,7 @@ static inline struct page * alloc_pages_
extern unsigned long FASTCALL(__get_free_pages(unsigned int gfp_mask, unsigned int order));
extern unsigned long FASTCALL(get_zeroed_page(unsigned int gfp_mask));
+int free_pages_bulk(struct zone *zone, int count, struct list_head *list, unsigned int order);
#define __get_free_page(gfp_mask) \
__get_free_pages((gfp_mask),0)
diff -prauN mm1-2.6.0-1/mm/page_alloc.c mm1-2.6.0-2/mm/page_alloc.c
--- mm1-2.6.0-1/mm/page_alloc.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/mm/page_alloc.c 2003-12-24 04:06:34.000000000 -0800
@@ -238,8 +238,7 @@ static inline void free_pages_check(cons
* And clear the zone's pages_scanned counter, to hold off the "all pages are
* pinned" detection logic.
*/
-static int
-free_pages_bulk(struct zone *zone, int count,
+int free_pages_bulk(struct zone *zone, int count,
struct list_head *list, unsigned int order)
{
unsigned long mask, flags;
diff -prauN mm1-2.6.0-1/mm/vmscan.c mm1-2.6.0-2/mm/vmscan.c
--- mm1-2.6.0-1/mm/vmscan.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/mm/vmscan.c 2003-12-24 04:24:29.000000000 -0800
@@ -891,12 +891,10 @@ int try_to_free_pages(struct zone **zone
/* Take a nap, wait for some writeback to complete */
blk_congestion_wait(WRITE, HZ/10);
- if (zones[0] - zones[0]->zone_pgdat->node_zones < ZONE_HIGHMEM) {
- shrink_slab(total_scanned, gfp_mask);
- if (reclaim_state) {
- nr_reclaimed += reclaim_state->reclaimed_slab;
- reclaim_state->reclaimed_slab = 0;
- }
+ shrink_slab(total_scanned, gfp_mask);
+ if (reclaim_state) {
+ nr_reclaimed += reclaim_state->reclaimed_slab;
+ reclaim_state->reclaimed_slab = 0;
}
}
if ((gfp_mask & __GFP_FS) && !(gfp_mask & __GFP_NORETRY))
@@ -968,11 +966,12 @@ static int balance_pgdat(pg_data_t *pgda
max_scan = SWAP_CLUSTER_MAX;
to_free -= shrink_zone(zone, max_scan, GFP_KERNEL,
to_reclaim, &nr_mapped, ps, priority);
- if (i < ZONE_HIGHMEM) {
- reclaim_state->reclaimed_slab = 0;
+ reclaim_state->reclaimed_slab = 0;
+ if (i < ZONE_HIGHMEM)
shrink_slab(max_scan + nr_mapped, GFP_KERNEL);
- to_free -= reclaim_state->reclaimed_slab;
- }
+ else
+ shrink_slab(max_scan + nr_mapped, GFP_HIGHUSER);
+ to_free -= reclaim_state->reclaimed_slab;
if (zone->all_unreclaimable)
continue;
if (zone->pages_scanned > zone->present_pages * 2)
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-24 13:09 ` 2.6.0-mm1 William Lee Irwin III
@ 2003-12-24 14:26 ` William Lee Irwin III
0 siblings, 0 replies; 54+ messages in thread
From: William Lee Irwin III @ 2003-12-24 14:26 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, linux-mm
[-- Attachment #1: Type: text/plain, Size: 939 bytes --]
On Wed, Dec 24, 2003 at 05:09:42AM -0800, William Lee Irwin III wrote:
> ptecache refresh. Includes the shrink_slab() and smp_local_irq_*
> suggestions as well as a fix for IPI recursion found while running
> hackbench on -wli, moving the "don't shrink lowmem slabs if gfp_mask
> wants highmem" logic into the shrinkers themselves, and converting
> shrink_pagetable_cache() to use on_each_cpu().
> How's this look?
This tries to adjust the reclaim logic so it returns status like other
shrinkers attached both incrementally and as a whole-hog replacement.
BTW
delta = scanned * shrinker->seeks;
delta *= (*shrinker->shrinker)(0, gfp_mask);
do_div(delta, pages + 1);
shrinker->nr += delta;
if (shrinker->nr > SHRINK_BATCH) {
long nr_to_scan = shrinker->nr;
more aggressively reclaims slabs requiring _more_ seeks to refill.
-- wli
[-- Attachment #2: fix_slab_shrink.patch --]
[-- Type: text/plain, Size: 2330 bytes --]
diff -u mm1-2.6.0-2/arch/i386/mm/pgtable.c mm1-2.6.0-2/arch/i386/mm/pgtable.c
--- mm1-2.6.0-2/arch/i386/mm/pgtable.c 2003-12-24 04:40:50.000000000 -0800
+++ mm1-2.6.0-2/arch/i386/mm/pgtable.c 2003-12-24 06:02:29.000000000 -0800
@@ -374,13 +374,18 @@
kmem_cache_free(pgd_cache, pgd);
}
-static void shrink_cpu_pagetable_cache(void *__gfp_mask)
+struct pagetable_shrink {
+ int gfp_mask;
+ atomic_t nr;
+};
+
+static void shrink_cpu_pagetable_cache(void *__shrink)
{
- int zone, high, gfp_mask = (int)__gfp_mask;
- unsigned long flags;
+ struct pagetable_shrink *shrink = (struct pagetable_shrink *)__shrink;
struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ int zone, high = !!(shrink->gfp_mask & __GFP_HIGHMEM);
+ unsigned long flags;
- high = !!(gfp_mask & __GFP_HIGHMEM);
local_irq_save(flags);
if (!tlb->nr_pte_ready)
goto out;
@@ -396,17 +401,55 @@
&tlb->ready_list[zone],
0);
tlb->nr_pte_ready -= tlb->ready_count[zone];
+ atomic_sub(tlb->ready_count[zone], &shrink->nr);
tlb->ready_count[zone] = 0;
+ if (atomic_read(&shrink->nr) <= 0)
+ goto out;
}
out:
local_irq_restore(flags);
put_cpu();
}
+static int pagetable_shrinkage_possible(int gfp_mask)
+{
+ int cpu, total = 0;
+
+ for (cpu = 0; cpu < NR_CPUS; ++cpu) {
+ struct mmu_gather *tlb;
+ if (!cpu_online(cpu))
+ continue;
+ tlb = &per_cpu(mmu_gathers, cpu);
+ if ((gfp_mask & __GFP_HIGHMEM) || !(GFP_PTE & __GFP_HIGHMEM))
+ total += tlb->nr_pte_ready;
+ else {
+ int zone;
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ if (!zone_high(zone_table[zone]))
+ total += tlb->ready_count[zone];
+ }
+ }
+ }
+ return total;
+}
+
static int shrink_pagetable_cache(int nr_to_scan, unsigned int gfp_mask)
{
- on_each_cpu(shrink_cpu_pagetable_cache, (void *)gfp_mask, 1, 1);
- return 1;
+ int possible;
+ if ((gfp_mask & __GFP_HIGHMEM) && !(GFP_PTE & __GFP_HIGHMEM))
+ return 0;
+ possible = pagetable_shrinkage_possible(gfp_mask);
+ if (!nr_to_scan)
+ return possible;
+ else if (!possible)
+ return 0;
+ else {
+ struct pagetable_shrink shrink;
+ shrink.gfp_mask = gfp_mask;
+ atomic_set(&shrink.nr, nr_to_scan);
+ on_each_cpu(shrink_cpu_pagetable_cache, &shrink, 1, 1);
+ return pagetable_shrinkage_possible(gfp_mask);
+ }
}
static __init int init_pagetable_cache_shrinker(void)
[-- Attachment #3: ptecache-2.6.0-mm1-1 --]
[-- Type: text/plain, Size: 15914 bytes --]
diff -prauN mm1-2.6.0-1/arch/i386/mm/init.c mm1-2.6.0-2/arch/i386/mm/init.c
--- mm1-2.6.0-1/arch/i386/mm/init.c 2003-12-24 04:02:51.000000000 -0800
+++ mm1-2.6.0-2/arch/i386/mm/init.c 2003-12-24 04:06:34.000000000 -0800
@@ -465,7 +465,7 @@ void __init mem_init(void)
/* this will put all low memory onto the freelists */
totalram_pages += __free_all_bootmem();
-
+ tlb_init();
reservedpages = 0;
for (tmp = 0; tmp < max_low_pfn; tmp++)
/*
diff -prauN mm1-2.6.0-1/arch/i386/mm/pgtable.c mm1-2.6.0-2/arch/i386/mm/pgtable.c
--- mm1-2.6.0-1/arch/i386/mm/pgtable.c 2003-12-24 04:02:51.000000000 -0800
+++ mm1-2.6.0-2/arch/i386/mm/pgtable.c 2003-12-24 06:02:29.000000000 -0800
@@ -1,5 +1,6 @@
/*
* linux/arch/i386/mm/pgtable.c
+ * highpte-compatible pte caching, William Irwin, IBM, June 2003
*/
#include <linux/config.h>
@@ -13,6 +14,7 @@
#include <linux/slab.h>
#include <linux/pagemap.h>
#include <linux/spinlock.h>
+#include <linux/init.h>
#include <asm/system.h>
#include <asm/pgtable.h>
@@ -139,18 +141,70 @@ pte_t *pte_alloc_one_kernel(struct mm_st
return pte;
}
-struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
+void tlb_init(void)
{
- struct page *pte;
+ int cpu;
+ for (cpu = 0; cpu < NR_CPUS; ++cpu) {
+ int zone;
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, cpu);
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ INIT_LIST_HEAD(&tlb->active_list[zone]);
+ INIT_LIST_HEAD(&tlb->ready_list[zone]);
+ }
+ }
+}
-#ifdef CONFIG_HIGHPTE
- pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT, 0);
-#else
- pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT, 0);
-#endif
- if (pte)
- clear_highpage(pte);
- return pte;
+static inline struct page *pte_alloc_fresh(int gfp_mask)
+{
+ struct page *page = alloc_page(gfp_mask);
+ if (page) {
+ clear_highpage(page);
+ if (TestSetPagePTE(page))
+ BUG();
+ }
+ return page;
+}
+
+static inline int zone_high(struct zone *zone)
+{
+ if (!zone)
+ return 1;
+ else
+ return zone - zone->zone_pgdat->node_zones >= ZONE_HIGHMEM;
+}
+
+static inline struct page *pte_alloc_ready(int gfp_flags)
+{
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ unsigned long flags;
+ struct page *page = NULL;
+
+ local_irq_save(flags);
+ if (tlb->nr_pte_ready) {
+ int z;
+ for (z = MAX_ZONE_ID - 1; z >= 0; --z) {
+ struct zone *zone = zone_table[z];
+ if (!(gfp_flags & __GFP_HIGHMEM) && zone_high(zone))
+ continue;
+ if (!list_empty(&tlb->ready_list[z]))
+ break;
+ }
+ page = list_entry(tlb->ready_list[z].next, struct page, list);
+ if (TestSetPagePTE(page))
+ BUG();
+ list_del(&page->list);
+ tlb->ready_count[z]--;
+ tlb->nr_pte_ready--;
+ }
+ local_irq_restore(flags);
+ put_cpu();
+ return page;
+}
+
+struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
+{
+ struct page *page = pte_alloc_ready(GFP_PTE);
+ return page ? page : pte_alloc_fresh(GFP_PTE);
}
void pmd_ctor(void *pmd, kmem_cache_t *cache, unsigned long flags)
@@ -320,3 +374,88 @@ out_free:
kmem_cache_free(pgd_cache, pgd);
}
+struct pagetable_shrink {
+ int gfp_mask;
+ atomic_t nr;
+};
+
+static void shrink_cpu_pagetable_cache(void *__shrink)
+{
+ struct pagetable_shrink *shrink = (struct pagetable_shrink *)__shrink;
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ int zone, high = !!(shrink->gfp_mask & __GFP_HIGHMEM);
+ unsigned long flags;
+
+ local_irq_save(flags);
+ if (!tlb->nr_pte_ready)
+ goto out;
+
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ if (list_empty(&tlb->ready_list[zone]))
+ continue;
+ if (!high && zone_high(zone_table[zone]))
+ continue;
+
+ free_pages_bulk(zone_table[zone],
+ tlb->ready_count[zone],
+ &tlb->ready_list[zone],
+ 0);
+ tlb->nr_pte_ready -= tlb->ready_count[zone];
+ atomic_sub(tlb->ready_count[zone], &shrink->nr);
+ tlb->ready_count[zone] = 0;
+ if (atomic_read(&shrink->nr) <= 0)
+ goto out;
+ }
+out:
+ local_irq_restore(flags);
+ put_cpu();
+}
+
+static int pagetable_shrinkage_possible(int gfp_mask)
+{
+ int cpu, total = 0;
+
+ for (cpu = 0; cpu < NR_CPUS; ++cpu) {
+ struct mmu_gather *tlb;
+ if (!cpu_online(cpu))
+ continue;
+ tlb = &per_cpu(mmu_gathers, cpu);
+ if ((gfp_mask & __GFP_HIGHMEM) || !(GFP_PTE & __GFP_HIGHMEM))
+ total += tlb->nr_pte_ready;
+ else {
+ int zone;
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ if (!zone_high(zone_table[zone]))
+ total += tlb->ready_count[zone];
+ }
+ }
+ }
+ return total;
+}
+
+static int shrink_pagetable_cache(int nr_to_scan, unsigned int gfp_mask)
+{
+ int possible;
+ if ((gfp_mask & __GFP_HIGHMEM) && !(GFP_PTE & __GFP_HIGHMEM))
+ return 0;
+ possible = pagetable_shrinkage_possible(gfp_mask);
+ if (!nr_to_scan)
+ return possible;
+ else if (!possible)
+ return 0;
+ else {
+ struct pagetable_shrink shrink;
+ shrink.gfp_mask = gfp_mask;
+ atomic_set(&shrink.nr, nr_to_scan);
+ on_each_cpu(shrink_cpu_pagetable_cache, &shrink, 1, 1);
+ return pagetable_shrinkage_possible(gfp_mask);
+ }
+}
+
+static __init int init_pagetable_cache_shrinker(void)
+{
+ set_shrinker(1, shrink_pagetable_cache);
+ return 0;
+}
+
+__initcall(init_pagetable_cache_shrinker);
diff -prauN mm1-2.6.0-1/fs/dcache.c mm1-2.6.0-2/fs/dcache.c
--- mm1-2.6.0-1/fs/dcache.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/fs/dcache.c 2003-12-24 04:15:28.000000000 -0800
@@ -642,6 +642,9 @@ void shrink_dcache_anon(struct hlist_hea
*/
static int shrink_dcache_memory(int nr, unsigned int gfp_mask)
{
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
+
if (nr) {
/*
* Nasty deadlock avoidance.
diff -prauN mm1-2.6.0-1/fs/dquot.c mm1-2.6.0-2/fs/dquot.c
--- mm1-2.6.0-1/fs/dquot.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/fs/dquot.c 2003-12-24 04:15:47.000000000 -0800
@@ -391,6 +391,9 @@ static int shrink_dqcache_memory(int nr,
{
int ret;
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
+
spin_lock(&dq_list_lock);
if (nr)
prune_dqcache(nr);
diff -prauN mm1-2.6.0-1/fs/inode.c mm1-2.6.0-2/fs/inode.c
--- mm1-2.6.0-1/fs/inode.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/fs/inode.c 2003-12-24 04:16:14.000000000 -0800
@@ -468,6 +468,9 @@ static void prune_icache(int nr_to_scan)
*/
static int shrink_icache_memory(int nr, unsigned int gfp_mask)
{
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
+
if (nr) {
/*
* Nasty deadlock avoidance. We may hold various FS locks,
diff -prauN mm1-2.6.0-1/fs/mbcache.c mm1-2.6.0-2/fs/mbcache.c
--- mm1-2.6.0-1/fs/mbcache.c 2003-12-17 18:59:53.000000000 -0800
+++ mm1-2.6.0-2/fs/mbcache.c 2003-12-24 04:16:50.000000000 -0800
@@ -176,6 +176,9 @@ mb_cache_shrink_fn(int nr_to_scan, unsig
struct list_head *l, *ltmp;
int count = 0;
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
+
spin_lock(&mb_cache_spinlock);
list_for_each(l, &mb_cache_list) {
struct mb_cache *cache =
diff -prauN mm1-2.6.0-1/fs/xfs/quota/xfs_qm.c mm1-2.6.0-2/fs/xfs/quota/xfs_qm.c
--- mm1-2.6.0-1/fs/xfs/quota/xfs_qm.c 2003-12-17 18:58:05.000000000 -0800
+++ mm1-2.6.0-2/fs/xfs/quota/xfs_qm.c 2003-12-24 04:17:50.000000000 -0800
@@ -2208,6 +2208,8 @@ xfs_qm_shake(int nr_to_scan, unsigned in
if (!(gfp_mask & __GFP_WAIT))
return 0;
+ if (gfp_mask & __GFP_HIGHMEM)
+ return 0;
if (!xfs_Gqm)
return 0;
diff -prauN mm1-2.6.0-1/include/asm-i386/pgalloc.h mm1-2.6.0-2/include/asm-i386/pgalloc.h
--- mm1-2.6.0-1/include/asm-i386/pgalloc.h 2003-12-17 18:58:07.000000000 -0800
+++ mm1-2.6.0-2/include/asm-i386/pgalloc.h 2003-12-24 04:06:34.000000000 -0800
@@ -31,14 +31,6 @@ static inline void pte_free_kernel(pte_t
free_page((unsigned long)pte);
}
-static inline void pte_free(struct page *pte)
-{
- __free_page(pte);
-}
-
-
-#define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte))
-
/*
* allocating and freeing a pmd is trivial: the 1-entry pmd is
* inside the pgd, so has no extra memory associated with it.
@@ -47,9 +39,26 @@ static inline void pte_free(struct page
#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
#define pmd_free(x) do { } while (0)
-#define __pmd_free_tlb(tlb,x) do { } while (0)
#define pgd_populate(mm, pmd, pte) BUG()
#define check_pgt_cache() do { } while (0)
+#include <asm/tlb.h>
+
+static inline void pte_free(struct page *page)
+{
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ tlb_remove_page(tlb, page);
+ put_cpu();
+}
+
+static inline void pte_free_tlb(struct mmu_gather *tlb, struct page *page)
+{
+ tlb_remove_page(tlb, page);
+}
+
+static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
+{
+}
+
#endif /* _I386_PGALLOC_H */
diff -prauN mm1-2.6.0-1/include/asm-i386/tlb.h mm1-2.6.0-2/include/asm-i386/tlb.h
--- mm1-2.6.0-1/include/asm-i386/tlb.h 2003-12-17 18:58:38.000000000 -0800
+++ mm1-2.6.0-2/include/asm-i386/tlb.h 2003-12-24 04:41:00.000000000 -0800
@@ -1,10 +1,52 @@
#ifndef _I386_TLB_H
#define _I386_TLB_H
+/*
+ * include/asm-i386/tlb.h
+ * (C) June 2003 William Irwin, IBM
+ * Routines for pagetable caching and release.
+ */
+
+#include <linux/config.h>
+#include <linux/mm.h>
+#include <linux/swap.h>
+#include <linux/gfp.h>
+#include <linux/list.h>
+#include <linux/percpu.h>
+#include <asm/tlbflush.h>
+
+#ifdef CONFIG_HIGHPTE
+#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT|__GFP_HIGHMEM)
+#else
+#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT)
+#endif
+
+#define PG_PTE PG_arch_1
+#define NR_PTE 128
+#define FREE_PTE_NR NR_PTE
+#define NR_NONPTE 512
+#define MAX_ZONE_ID (MAX_NUMNODES * MAX_NR_ZONES)
+
+#define PagePTE(page) test_bit(PG_PTE, &(page)->flags)
+#define SetPagePTE(page) set_bit(PG_PTE, &(page)->flags)
+#define ClearPagePTE(page) clear_bit(PG_PTE, &(page)->flags)
+#define TestSetPagePTE(page) test_and_set_bit(PG_PTE, &(page)->flags)
+#define TestClearPagePTE(page) test_and_clear_bit(PG_PTE, &(page)->flags)
+#define PageZoneID(page) ((page)->flags >> ZONE_SHIFT)
/*
- * x86 doesn't need any special per-pte or
- * per-vma handling..
+ * vmscan.c does smp_call_function() to shoot down cached pagetables under
+ * memory pressure.
*/
+struct mmu_gather {
+ struct mm_struct *mm;
+ int nr_pte_active, nr_pte_ready, nr_nonpte, need_flush, fullmm, freed;
+ struct list_head active_list[MAX_ZONE_ID], ready_list[MAX_ZONE_ID];
+ int active_count[MAX_ZONE_ID], ready_count[MAX_ZONE_ID];
+ struct page *nonpte[NR_NONPTE];
+};
+
+DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
+
#define tlb_start_vma(tlb, vma) do { } while (0)
#define tlb_end_vma(tlb, vma) do { } while (0)
#define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
@@ -15,6 +57,119 @@
*/
#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
-#include <asm-generic/tlb.h>
+void tlb_init(void);
-#endif
+static inline
+struct mmu_gather *tlb_gather_mmu(struct mm_struct *mm, unsigned int flush)
+{
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ tlb->mm = mm;
+ tlb->fullmm = flush;
+ tlb->freed = 0;
+ put_cpu();
+ return tlb;
+}
+
+static inline
+void tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *pte, unsigned long addr)
+{
+ tlb->need_flush = 1;
+}
+
+static inline
+void tlb_flush_ready(struct mmu_gather *tlb)
+{
+ int zone;
+
+ for (zone = 0; tlb->nr_pte_ready >= NR_PTE && zone < MAX_ZONE_ID; ++zone) {
+ if (!tlb->ready_count[zone])
+ continue;
+
+ free_pages_bulk(zone_table[zone],
+ tlb->ready_count[zone],
+ &tlb->ready_list[zone],
+ 0);
+ tlb->nr_pte_ready -= tlb->ready_count[zone];
+ tlb->ready_count[zone] = 0;
+ }
+}
+
+static inline
+void tlb_flush_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
+{
+ int zone;
+ unsigned long flags;
+
+ if (!tlb->need_flush && tlb->nr_nonpte < NR_NONPTE)
+ return;
+
+ tlb->need_flush = 0;
+ tlb_flush(tlb);
+
+ local_irq_save(flags);
+
+ if (tlb->nr_nonpte) {
+ free_pages_and_swap_cache(tlb->nonpte, tlb->nr_nonpte);
+ tlb->nr_nonpte = 0;
+ }
+
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ if (!tlb->active_count[zone])
+ continue;
+
+ list_splice_init(&tlb->active_list[zone], &tlb->ready_list[zone]);
+ tlb->ready_count[zone] += tlb->active_count[zone];
+ tlb->active_count[zone] = 0;
+ }
+ tlb->nr_pte_ready += tlb->nr_pte_active;
+ tlb->nr_pte_active = 0;
+ if (tlb->nr_pte_ready >= NR_PTE)
+ tlb_flush_ready(tlb);
+
+ local_irq_restore(flags);
+}
+
+static inline
+void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
+{
+ if (tlb->mm->rss >= tlb->freed)
+ tlb->mm->rss -= tlb->freed;
+ else
+ tlb->mm->rss = 0;
+ tlb_flush_mmu(tlb, start, end);
+}
+
+static inline
+void tlb_remove_nonpte_page(struct mmu_gather *tlb, struct page *page)
+{
+ tlb->nonpte[tlb->nr_nonpte] = page;
+ tlb->nr_nonpte++;
+ if (tlb->nr_nonpte >= NR_NONPTE)
+ tlb_flush_mmu(tlb, 0, 0);
+}
+
+static inline
+void tlb_remove_pte_page(struct mmu_gather *tlb, struct page *page)
+{
+ int zone = PageZoneID(page);
+ ClearPagePTE(page);
+ tlb->nr_pte_active++;
+ tlb->active_count[zone]++;
+ list_add(&page->list, &tlb->active_list[zone]);
+}
+
+static inline
+void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
+{
+ unsigned long flags;
+
+ local_irq_save(flags);
+ tlb->need_flush = 1;
+ if (PagePTE(page))
+ tlb_remove_pte_page(tlb, page);
+ else
+ tlb_remove_nonpte_page(tlb, page);
+ local_irq_restore(flags);
+}
+
+#endif /* _I386_TLB_H */
diff -prauN mm1-2.6.0-1/include/linux/gfp.h mm1-2.6.0-2/include/linux/gfp.h
--- mm1-2.6.0-1/include/linux/gfp.h 2003-12-17 18:58:28.000000000 -0800
+++ mm1-2.6.0-2/include/linux/gfp.h 2003-12-24 04:06:34.000000000 -0800
@@ -79,6 +79,7 @@ static inline struct page * alloc_pages_
extern unsigned long FASTCALL(__get_free_pages(unsigned int gfp_mask, unsigned int order));
extern unsigned long FASTCALL(get_zeroed_page(unsigned int gfp_mask));
+int free_pages_bulk(struct zone *zone, int count, struct list_head *list, unsigned int order);
#define __get_free_page(gfp_mask) \
__get_free_pages((gfp_mask),0)
diff -prauN mm1-2.6.0-1/mm/page_alloc.c mm1-2.6.0-2/mm/page_alloc.c
--- mm1-2.6.0-1/mm/page_alloc.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/mm/page_alloc.c 2003-12-24 04:06:34.000000000 -0800
@@ -238,8 +238,7 @@ static inline void free_pages_check(cons
* And clear the zone's pages_scanned counter, to hold off the "all pages are
* pinned" detection logic.
*/
-static int
-free_pages_bulk(struct zone *zone, int count,
+int free_pages_bulk(struct zone *zone, int count,
struct list_head *list, unsigned int order)
{
unsigned long mask, flags;
diff -prauN mm1-2.6.0-1/mm/vmscan.c mm1-2.6.0-2/mm/vmscan.c
--- mm1-2.6.0-1/mm/vmscan.c 2003-12-24 04:02:53.000000000 -0800
+++ mm1-2.6.0-2/mm/vmscan.c 2003-12-24 04:24:29.000000000 -0800
@@ -891,12 +891,10 @@ int try_to_free_pages(struct zone **zone
/* Take a nap, wait for some writeback to complete */
blk_congestion_wait(WRITE, HZ/10);
- if (zones[0] - zones[0]->zone_pgdat->node_zones < ZONE_HIGHMEM) {
- shrink_slab(total_scanned, gfp_mask);
- if (reclaim_state) {
- nr_reclaimed += reclaim_state->reclaimed_slab;
- reclaim_state->reclaimed_slab = 0;
- }
+ shrink_slab(total_scanned, gfp_mask);
+ if (reclaim_state) {
+ nr_reclaimed += reclaim_state->reclaimed_slab;
+ reclaim_state->reclaimed_slab = 0;
}
}
if ((gfp_mask & __GFP_FS) && !(gfp_mask & __GFP_NORETRY))
@@ -968,11 +966,12 @@ static int balance_pgdat(pg_data_t *pgda
max_scan = SWAP_CLUSTER_MAX;
to_free -= shrink_zone(zone, max_scan, GFP_KERNEL,
to_reclaim, &nr_mapped, ps, priority);
- if (i < ZONE_HIGHMEM) {
- reclaim_state->reclaimed_slab = 0;
+ reclaim_state->reclaimed_slab = 0;
+ if (i < ZONE_HIGHMEM)
shrink_slab(max_scan + nr_mapped, GFP_KERNEL);
- to_free -= reclaim_state->reclaimed_slab;
- }
+ else
+ shrink_slab(max_scan + nr_mapped, GFP_HIGHUSER);
+ to_free -= reclaim_state->reclaimed_slab;
if (zone->all_unreclaimable)
continue;
if (zone->pages_scanned > zone->present_pages * 2)
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-24 9:59 2.6.0-mm1 GCS
2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton
@ 2003-12-24 14:38 ` GCS
1 sibling, 0 replies; 54+ messages in thread
From: GCS @ 2003-12-24 14:38 UTC (permalink / raw)
To: linux-kernel; +Cc: Andrew Morton
On Wed, Dec 24, 2003 at 10:59:21AM +0100, GCS <gcs@lsc.hu> wrote:
> [...] but still some lock or sth
> is not unlocked, as the CPU is used more and more about five secs by one
> or two percent. Sooner or later it's crashed as well, but I could
> restart the machine before that happened.
Update: I could trigger this bug in 2.6.0-mm1 as well with the Linux
port of Head over Heels (classic game from C64). The CPU was getting
more and more used, so the game slowed down. I could quit then from the
game and XFree86. I did an emergency sync, and it succeded. Issued halt,
but it stopped at init sending term to all processes, so I tried a hard
power off. I got an error, something about slab, maybe at line 168. It
was scrolled out too fast by the stack-trace, and at the end:
ACPI-0094: *** Error: Could not acquire interpreter mutex
Crashed there. :-(
GCS
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-24 12:23 ` 2.6.0-mm1 GCS
@ 2003-12-24 15:17 ` Dmitry Torokhov
2003-12-24 19:12 ` 2.6.0-mm1 GCS
0 siblings, 1 reply; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-24 15:17 UTC (permalink / raw)
To: GCS, Andrew Morton; +Cc: linux-kernel, Peter Osterlund
On Wednesday 24 December 2003 07:23 am, GCS wrote:
> On Wed, Dec 24, 2003 at 12:53:42PM +0100, GCS <gcs@lsc.hu> wrote:
> > input-02-add-psmouse_proto.patch (?)
>
> Just found out psmouse_noext is deprecated. I have specified
> psmouse_proto then, but imps and exps (and bare too, but I have not
> tested it, as reading the code it seems psmouse_noext falls back to
> bare) are the same. On the console touchpad is working, under XFree86
> 4.3.0 is not. To be more specific, the buttons do work, but I can not
> move the pointer at all. Well, first I thought the middle two buttons
> are for scrolling, as they are placed (and IIRC, they do scroll under
> m$ win), but the top button is like the left button and the bottom
> button is for paste, ie middle button on three buttons mices.
May we see your dmegs, XF86Config and the parameters you are passing
to GPM please? Btw, what version of GPM are you using?
As far as reverting patches I would start with
input-08-synaptics-protocol-discovery.patch
Dmitry
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
` (6 preceding siblings ...)
2003-12-24 13:09 ` 2.6.0-mm1 William Lee Irwin III
@ 2003-12-24 15:39 ` Gene Heskett
2003-12-28 10:58 ` 2.6.0-mm1 Christoph Hellwig
8 siblings, 0 replies; 54+ messages in thread
From: Gene Heskett @ 2003-12-24 15:39 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, linux-mm
On Tuesday 23 December 2003 00:11, Andrew Morton wrote:
>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-
>test11/2.6.0-mm1/
>
>
>Quite a lot of new material here. It would be appreciated if people
> who have significant patches in -mm could retest please.
I don't have anything in -mm1, but heres a report, up about 23 hrs
now.
Everything seems to be working fine, and one proggy I couldn't run
before, now does, epsons iscan-1.5.2 front end for sane driven
scanners now works. The major thing I see in the logs is audio
related, and has been carrying on since last summer.
Dec 23 20:35:18 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 23 21:33:06 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 23 22:10:50 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 23 22:25:58 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 23 22:50:40 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 23 23:20:37 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 23 23:33:07 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 23 23:53:43 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 24 00:07:46 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 24 00:22:26 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 24 01:22:55 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 24 01:35:27 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 24 03:47:31 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
Dec 24 03:59:54 coyote kernel: via82cxxx: timeout while reading AC97
codec (0x9A0000)
I think that each of those is related to the little two tone noise I
play when there is new incoming mail. There's a couple of other
non-show stoppers but thats the major log clutterer. The only alsa
is whats in the kernel, and with a couple of very minor exceptions,
it all works. No Ooops, lockups or anything like that. All pretty
smooth and interactive using anticipatory at the moment.
Merry Christmas Andrew!
--
Cheers, Gene
AMD K6-III@500mhz 320M
Athlon1600XP@1400mhz 512M
99.22% setiathome rank, not too shabby for a WV hillbilly
Yahoo.com attornies please note, additions to this message
by Gene Heskett are:
Copyright 2003 by Maurice Eugene Heskett, all rights reserved.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-24 15:17 ` 2.6.0-mm1 Dmitry Torokhov
@ 2003-12-24 19:12 ` GCS
0 siblings, 0 replies; 54+ messages in thread
From: GCS @ 2003-12-24 19:12 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Andrew Morton, linux-kernel, Peter Osterlund
On Wed, Dec 24, 2003 at 10:17:43AM -0500, Dmitry Torokhov <dtor_core@ameritech.net> wrote:
> May we see your dmegs, XF86Config and the parameters you are passing
> to GPM please?
Sure, sorry for not doing it earlier:
-- dmesg --
i8042.c: Detected active multiplexing controller, rev 1.1.
serio: i8042 AUX0 port at 0x60,0x64 irq 12
serio: i8042 AUX1 port at 0x60,0x64 irq 12
serio: i8042 AUX2 port at 0x60,0x64 irq 12
serio: i8042 AUX3 port at 0x60,0x64 irq 12
Synaptics Touchpad, model: 1
Firmware: 5.6
180 degree mounted touchpad
Sensor: 18
new absolute packet format
Touchpad has extended capability bits
-> four buttons
-> multifinger detection
-> palm detection
input: SynPS/2 Synaptics TouchPad on isa0060/serio4
serio: i8042 KBD port at 0x60,0x64 irq 1
input: AT Translated Set 2 keyboard on isa0060/serio0
-- dmesg --
-- XF86Config-4 --
Section "Module"
Load "GLcore"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
Load "xtt"
Load "synaptics"
EndSection
Section "InputDevice"
Driver "synaptics"
Identifier "Configured Mouse"
Option "Device" "/dev/gpmdata"
Option "Protocol" "auto-dev"
Option "LeftEdge" "1900"
Option "RightEdge" "5400"
Option "TopEdge" "1900"
Option "BottomEdge" "4000"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.02"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.0010"
Option "SHMConfig" "on"
# Option "Repeater" "/dev/ps2mouse"
EndSection
-- XF86Config-4 --
The Synaptics driver used is 0.12.2, compiled for myself, evdev is in
module, but ofcourse it's loaded before XFree86 starts. (I have stripped
down the files a bit, if you would like to see the whole files or other
parts, please ask - I thought it would be easier to see the relevant
lines only). gpm is configured by /etc/gpm.conf , but it should be:
gpm -m /dev/psaux -t ps2 -R raw
Also, the XFree86 Synaptics driver prints this while starting and
switching between console and XFree86:
Synaptics DeviceInit called
SynapticsCtrl called.
Synaptics DeviceOn called
Synaptics DeviceOff called
[the last two repeated more times]
> Btw, what version of GPM are you using?
I am running Debian Sid, thus I also thought gpm is the newest; as I
do understand I should use 1.20.1, which is the latest AFAIK. Thus I was
shocked a bit on what 'dpkg -l gpm' gives:
ii gpm 1.19.6-12.1 General Purpose Mouse Interface
More than a year old! Already filed an important bug on this. Sorry, it
seems to be the problem, or at least produces strange behavior:
I plugged in an USB mouse, which works while the touchpad still not
under XFree86 (both works at the same time under console - even if I did
not specified any additional config for gpm). The config for XFree86:
-- XF86Config-4 --
Section "InputDevice"
Identifier "USB Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "imps/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
-- XF86Config-4 --
Made it the only one pointer input. Now, if I kill gpm with 'gpm -k',
then the touchpad begins to work! Sometimes if I release it, then the
pointer jumps a bit from where I pointed it, but that's all. I'm not
good in mice stuff, so I can't explain this. Anyway, I will try to
compile a newer gpm, change it's device, so play a bit; maybe I can come
up with something.
> As far as reverting patches I would start with
> input-08-synaptics-protocol-discovery.patch
It did not help. :-(
Thanks, and Merry Christmas!
GCS
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton
2003-12-24 11:53 ` 2.6.0-mm1 GCS
2003-12-24 12:47 ` 2.6.0-mm1 Thomas Molina
@ 2003-12-25 9:11 ` Dmitry Torokhov
2003-12-25 9:13 ` 2.6.0-mm1 - Patch 1/2 - mousedev-remove-jitter Dmitry Torokhov
2003-12-25 18:22 ` 2.6.0-mm1 GCS
2 siblings, 2 replies; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-25 9:11 UTC (permalink / raw)
To: Andrew Morton, GCS; +Cc: linux-kernel, Peter Osterlund
On Wednesday 24 December 2003 06:32 am, Andrew Morton wrote:
> GCS <gcs@lsc.hu> wrote:
[..SKIP..]
>
> > - I have a synaptics touchpad, which is detected correctly, but only
> > works if I set psmouse_noext=1. Under vanilla 2.6.0 it still works
> > this way, but with 2.6.0-mm1 it works only on the console, but not
> > under XFree86. Strange, as gpm interprets the input and pipes thru
> > gpmdata to XFree86 4.3.0. Any idea what broke this configuration?
>
> Peter or Dmitry may be able to tell us.
Whew.. that wasn't easy to spot... When doing PS/2 emulation for touchpads
that use absolute events, when processing BTN_TOUCH event mousedev would
stop on the very first client. So in your normal case only GPM would see
the Synaptics but once you killed GPM XFree would be the first in line and
magically start working.
My guess you didn't see that in stock 2.6.0 because you were compiling
without Synaptics support.
I am sending 2 patches - one to remove mouse jitter with Synaptics when
it is used through mousedev (PS/2 emulation) - mousedev will use 3 point
history and average when calculating deltas, the other one is the fix for
the problem you are experiencing. They should apply to 2.6.0-mm1 and to
stock 2.6.0 with minimal jitter.
Dmitry
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1 - Patch 1/2 - mousedev-remove-jitter
2003-12-25 9:11 ` 2.6.0-mm1 Dmitry Torokhov
@ 2003-12-25 9:13 ` Dmitry Torokhov
2003-12-25 9:14 ` 2.6.0-mm1 - Patch 2/2 - mousedev-dont-stop Dmitry Torokhov
2003-12-25 18:22 ` 2.6.0-mm1 GCS
1 sibling, 1 reply; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-25 9:13 UTC (permalink / raw)
To: Andrew Morton, GCS; +Cc: linux-kernel, Peter Osterlund
===================================================================
ChangeSet@1.1522, 2003-12-23 02:24:12-05:00, dtor_core@ameritech.net
Input: when calculating deltas for touchpads that generate
absolute events use average over the last 3 packets
to remove jitter
mouse/synaptics.c | 11 ++++---
mousedev.c | 84 +++++++++++++++++++++++++++++++-----------------------
2 files changed, 56 insertions(+), 39 deletions(-)
===================================================================
diff -Nru a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
--- a/drivers/input/mouse/synaptics.c Thu Dec 25 03:58:14 2003
+++ b/drivers/input/mouse/synaptics.c Thu Dec 25 03:58:14 2003
@@ -553,15 +553,18 @@
finger_width = 0;
}
- /* Post events */
+ /* Post events
+ * BTN_TOUCH has to be first as mousedev relies on it when doing
+ * absolute -> relative conversion
+ */
+ if (hw.z > 30) input_report_key(dev, BTN_TOUCH, 1);
+ if (hw.z < 25) input_report_key(dev, BTN_TOUCH, 0);
+
if (hw.z > 0) {
input_report_abs(dev, ABS_X, hw.x);
input_report_abs(dev, ABS_Y, YMAX_NOMINAL + YMIN_NOMINAL - hw.y);
}
input_report_abs(dev, ABS_PRESSURE, hw.z);
-
- if (hw.z > 30) input_report_key(dev, BTN_TOUCH, 1);
- if (hw.z < 25) input_report_key(dev, BTN_TOUCH, 0);
input_report_abs(dev, ABS_TOOL_WIDTH, finger_width);
input_report_key(dev, BTN_TOOL_FINGER, num_fingers == 1);
diff -Nru a/drivers/input/mousedev.c b/drivers/input/mousedev.c
--- a/drivers/input/mousedev.c Thu Dec 25 03:58:14 2003
+++ b/drivers/input/mousedev.c Thu Dec 25 03:58:14 2003
@@ -53,12 +53,14 @@
struct fasync_struct *fasync;
struct mousedev *mousedev;
struct list_head node;
- int dx, dy, dz, oldx, oldy;
- signed char ps2[6];
+ int dx, dy, dz;
+ int old_x[4], old_y[4];
unsigned long buttons;
+ signed char ps2[6];
unsigned char ready, buffer, bufsiz;
unsigned char mode, imexseq, impsseq;
- int finger;
+ unsigned int pkt_count;
+ unsigned char touch;
};
#define MOUSEDEV_SEQ_LEN 6
@@ -74,49 +76,49 @@
static int xres = CONFIG_INPUT_MOUSEDEV_SCREEN_X;
static int yres = CONFIG_INPUT_MOUSEDEV_SCREEN_Y;
+#define fx(i) (list->old_x[(list->pkt_count - (i)) & 03])
+#define fy(i) (list->old_y[(list->pkt_count - (i)) & 03])
+
static void mousedev_abs_event(struct input_handle *handle, struct mousedev_list *list, unsigned int code, int value)
{
int size;
+ int touchpad;
/* Ignore joysticks */
if (test_bit(BTN_TRIGGER, handle->dev->keybit))
return;
- /* Handle touchpad data */
- if (test_bit(BTN_TOOL_FINGER, handle->dev->keybit)) {
+ touchpad = test_bit(BTN_TOOL_FINGER, handle->dev->keybit);
- if (list->finger && list->finger < 3)
- list->finger++;
-
- switch (code) {
- case ABS_X:
- if (list->finger == 3)
- list->dx += (value - list->oldx) / 8;
- list->oldx = value;
- return;
- case ABS_Y:
- if (list->finger == 3)
- list->dy -= (value - list->oldy) / 8;
- list->oldy = value;
- return;
- }
- return;
- }
-
- /* Handle tablet data */
switch (code) {
case ABS_X:
- size = handle->dev->absmax[ABS_X] - handle->dev->absmin[ABS_X];
- if (size == 0) size = xres;
- list->dx += (value * xres - list->oldx) / size;
- list->oldx += list->dx * size;
- return;
+ if (touchpad) {
+ if (list->touch) {
+ fx(0) = value;
+ if (list->pkt_count >= 2)
+ list->dx = ((fx(0) - fx(1)) / 2 + (fx(1) - fx(2)) / 2) / 8;
+ }
+ } else {
+ size = handle->dev->absmax[ABS_X] - handle->dev->absmin[ABS_X];
+ if (size == 0) size = xres;
+ list->dx += (value * xres - list->old_x[0]) / size;
+ list->old_x[0] += list->dx * size;
+ }
+ break;
case ABS_Y:
- size = handle->dev->absmax[ABS_Y] - handle->dev->absmin[ABS_Y];
- if (size == 0) size = yres;
- list->dy -= (value * yres - list->oldy) / size;
- list->oldy -= list->dy * size;
- return;
+ if (touchpad) {
+ if (list->touch) {
+ fy(0) = value;
+ if (list->pkt_count >= 2)
+ list->dy = -((fy(0) - fy(1)) / 2 + (fy(1) - fy(2)) / 2) / 8;
+ }
+ } else {
+ size = handle->dev->absmax[ABS_Y] - handle->dev->absmin[ABS_Y];
+ if (size == 0) size = yres;
+ list->dy -= (value * yres - list->old_y[0]) / size;
+ list->old_y[0] -= list->dy * size;
+ }
+ break;
}
}
@@ -149,7 +151,9 @@
switch (code) {
case BTN_TOUCH: /* Handle touchpad data */
if (test_bit(BTN_TOOL_FINGER, handle->dev->keybit)) {
- list->finger = value;
+ list->touch = value;
+ if (!list->touch)
+ list->pkt_count = 0;
return;
}
case BTN_0:
@@ -178,6 +182,16 @@
case EV_SYN:
switch (code) {
case SYN_REPORT:
+ if (list->touch) {
+ list->pkt_count++;
+ /* Input system eats duplicate events,
+ * but we need all of them to do correct
+ * averaging so apply present one forward
+ */
+ fx(0) = fx(1);
+ fy(0) = fy(1);
+ }
+
list->ready = 1;
kill_fasync(&list->fasync, SIGIO, POLL_IN);
wake = 1;
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1 - Patch 2/2 - mousedev-dont-stop
2003-12-25 9:13 ` 2.6.0-mm1 - Patch 1/2 - mousedev-remove-jitter Dmitry Torokhov
@ 2003-12-25 9:14 ` Dmitry Torokhov
2003-12-27 11:38 ` Synaptics problems in -mm1 Tomas Szepe
0 siblings, 1 reply; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-25 9:14 UTC (permalink / raw)
To: Andrew Morton, GCS; +Cc: linux-kernel, Peter Osterlund
===================================================================
ChangeSet@1.1525, 2003-12-25 03:56:28-05:00, dtor_core@ameritech.net
Input: correctly perform PS/2 (mousedev) emulation for touchpads
generating absolute events (do not stop with the first
client)
mousedev.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
===================================================================
diff -Nru a/drivers/input/mousedev.c b/drivers/input/mousedev.c
--- a/drivers/input/mousedev.c Thu Dec 25 03:57:50 2003
+++ b/drivers/input/mousedev.c Thu Dec 25 03:57:50 2003
@@ -148,14 +148,16 @@
break;
case EV_KEY:
+ if (code == BTN_TOUCH && test_bit(BTN_TOOL_FINGER, handle->dev->keybit)) {
+ /* Handle touchpad data */
+ list->touch = value;
+ if (!list->touch)
+ list->pkt_count = 0;
+ break;
+ }
+
switch (code) {
- case BTN_TOUCH: /* Handle touchpad data */
- if (test_bit(BTN_TOOL_FINGER, handle->dev->keybit)) {
- list->touch = value;
- if (!list->touch)
- list->pkt_count = 0;
- return;
- }
+ case BTN_TOUCH:
case BTN_0:
case BTN_FORWARD:
case BTN_LEFT: index = 0; break;
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-25 9:11 ` 2.6.0-mm1 Dmitry Torokhov
2003-12-25 9:13 ` 2.6.0-mm1 - Patch 1/2 - mousedev-remove-jitter Dmitry Torokhov
@ 2003-12-25 18:22 ` GCS
1 sibling, 0 replies; 54+ messages in thread
From: GCS @ 2003-12-25 18:22 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Andrew Morton, linux-kernel, Peter Osterlund
On Thu, Dec 25, 2003 at 04:11:54AM -0500, Dmitry Torokhov <dtor_core@ameritech.net> wrote:
> I am sending 2 patches - one to remove mouse jitter with Synaptics when
> it is used through mousedev (PS/2 emulation) - mousedev will use 3 point
> history and average when calculating deltas, the other one is the fix for
> the problem you are experiencing. They should apply to 2.6.0-mm1 and to
> stock 2.6.0 with minimal jitter.
I have applied both to 2.6.0-mm1. They are just working, no jumping
mouse pointer when I release the touchpad, and both touchpad+usb mouse
working on console and under XFree86 as well. OK, I could not really
understand how they are working, as for me it seems gpm interprets
/dev/psaux only, and get both pointing device right, still XFree86 which
reads data replicated by gpm via gpmdata can't handle the USB mouse
directly. I had to use a separate config, which reads /dev/input/mice as
well. I think it's because XFree86's synaptics driver skip events from
the USB mouse. Anyway, thanks for your help and work!
Merry Christmas!
GCS
--
BorsodChem Joint-Stock Company Linux Support Center
Software engineer Developer
+36-48-511211/12-99 +36-20-4441745
^ permalink raw reply [flat|nested] 54+ messages in thread
* Synaptics problems in -mm1
2003-12-25 9:14 ` 2.6.0-mm1 - Patch 2/2 - mousedev-dont-stop Dmitry Torokhov
@ 2003-12-27 11:38 ` Tomas Szepe
2003-12-27 12:24 ` GCS
` (2 more replies)
0 siblings, 3 replies; 54+ messages in thread
From: Tomas Szepe @ 2003-12-27 11:38 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Andrew Morton, GCS, linux-kernel, Peter Osterlund
Hi,
it seems one of the synaptics-related patches in 2.6.0-mm1 kills
off the pointer stick on my T40p. 2.6.0 vanilla works just fine
in that department. Thought you might want to know.
Reverting
input-08-synaptics-protocol-discovery.patch
input-07-remove-synaptics-config-option.patch
synaptics-powerpro-fix.patch
did not seem to help. I failed to figure out a way to easily revert
serio-06-synaptics-use-reconnect.patch
serio-04-synaptics-cleanup.patch
so that I didn't try.
--
Tomas Szepe <szepe@pinerecords.com>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 11:38 ` Synaptics problems in -mm1 Tomas Szepe
@ 2003-12-27 12:24 ` GCS
2003-12-27 13:22 ` Tomas Szepe
2003-12-27 17:28 ` Dmitry Torokhov
2003-12-27 17:56 ` Marcos D. Marado Torres
2 siblings, 1 reply; 54+ messages in thread
From: GCS @ 2003-12-27 12:24 UTC (permalink / raw)
To: Tomas Szepe; +Cc: Dmitry Torokhov, Andrew Morton, linux-kernel, Peter Osterlund
On Sat, Dec 27, 2003 at 12:38:48PM +0100, Tomas Szepe <szepe@pinerecords.com> wrote:
> it seems one of the synaptics-related patches in 2.6.0-mm1 kills
> off the pointer stick on my T40p. 2.6.0 vanilla works just fine
> in that department. Thought you might want to know.
I had the same problems, but Dmitry provided two additional patches,
which made my one working. Have you tried them? You can find them in the
thread.
Cheers,
GCS
Ps:Somehow I know you, just don't know where - are you Hungarian?
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 12:24 ` GCS
@ 2003-12-27 13:22 ` Tomas Szepe
0 siblings, 0 replies; 54+ messages in thread
From: Tomas Szepe @ 2003-12-27 13:22 UTC (permalink / raw)
To: GCS; +Cc: Dmitry Torokhov, Andrew Morton, linux-kernel, Peter Osterlund
On Dec-27 2003, Sat, 13:24 +0100
GCS <gcs@lsc.hu> wrote:
> On Sat, Dec 27, 2003 at 12:38:48PM +0100, Tomas Szepe <szepe@pinerecords.com> wrote:
>
> > it seems one of the synaptics-related patches in 2.6.0-mm1 kills
> > off the pointer stick on my T40p. 2.6.0 vanilla works just fine
> > in that department. Thought you might want to know.
>
> I had the same problems, but Dmitry provided two additional patches,
> which made my one working. Have you tried them? You can find them in the
> thread.
Unfortunately, the two patches from this thread don't solve
the mm1 problem I'm seeing, the stick keeps on resting. :)
> Ps:Somehow I know you, just don't know where - are you Hungarian?
Not really, it's just the name.
--
Tomas Szepe <szepe@pinerecords.com>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 11:38 ` Synaptics problems in -mm1 Tomas Szepe
2003-12-27 12:24 ` GCS
@ 2003-12-27 17:28 ` Dmitry Torokhov
2003-12-27 18:11 ` Tomas Szepe
2003-12-27 17:56 ` Marcos D. Marado Torres
2 siblings, 1 reply; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-27 17:28 UTC (permalink / raw)
To: Tomas Szepe; +Cc: Andrew Morton, GCS, linux-kernel, Peter Osterlund
On Saturday 27 December 2003 06:38 am, Tomas Szepe wrote:
> Hi,
>
> it seems one of the synaptics-related patches in 2.6.0-mm1 kills
> off the pointer stick on my T40p. 2.6.0 vanilla works just fine
> in that department. Thought you might want to know.
>
> Reverting
>
> input-08-synaptics-protocol-discovery.patch
> input-07-remove-synaptics-config-option.patch
> synaptics-powerpro-fix.patch
>
> did not seem to help. I failed to figure out a way to easily revert
>
> serio-06-synaptics-use-reconnect.patch
> serio-04-synaptics-cleanup.patch
>
> so that I didn't try.
I have a couple of questions (I am not familiar with IBM hardware so
please bear with me...):
- Is it detected as Synaptics but does not work?
- Should it be detected as Synaptics?
- Does it work if you pass psmouse_noext=1 or psmouse_proto=bare?
And what about psmouse_proto=imps and psmouse_proto=exps
- Does it work if you give 2.6.0-test10-mm1 a quick boot?
- dmesg, input section of you XFree and version and parameters that
are passed to GPM.
Thank you,
Dmitry
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 11:38 ` Synaptics problems in -mm1 Tomas Szepe
2003-12-27 12:24 ` GCS
2003-12-27 17:28 ` Dmitry Torokhov
@ 2003-12-27 17:56 ` Marcos D. Marado Torres
2003-12-27 20:59 ` Dmitry Torokhov
2 siblings, 1 reply; 54+ messages in thread
From: Marcos D. Marado Torres @ 2003-12-27 17:56 UTC (permalink / raw)
To: Tomas Szepe
Cc: Dmitry Torokhov, Andrew Morton, GCS, linux-kernel,
Peter Osterlund
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
It kills the mouse tap on an Asus M3700N laptop too...
Mind Booster Noori
- --
==================================================
Marcos Daniel Marado Torres AKA Mind Booster Noori
/"\ http://student.dei.uc.pt/~marado
\ / marado@student.dei.uc.pt
X ASCII Ribbon Campaign
/ \ against HTML e-mail and Micro$oft attachments
==================================================
On Sat, 27 Dec 2003, Tomas Szepe wrote:
> Hi,
>
> it seems one of the synaptics-related patches in 2.6.0-mm1 kills
> off the pointer stick on my T40p. 2.6.0 vanilla works just fine
> in that department. Thought you might want to know.
>
> Reverting
>
> input-08-synaptics-protocol-discovery.patch
> input-07-remove-synaptics-config-option.patch
> synaptics-powerpro-fix.patch
>
> did not seem to help. I failed to figure out a way to easily revert
>
> serio-06-synaptics-use-reconnect.patch
> serio-04-synaptics-cleanup.patch
>
> so that I didn't try.
>
> --
> Tomas Szepe <szepe@pinerecords.com>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Made with pgp4pine 1.76
iD8DBQE/7cfQmNlq8m+oD34RAqUVAKDiNxT4XZgyDxsB2AzTqrUnmWfqkgCfZLah
18UNuecee424OP85exMvWW4=
=hki0
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 17:28 ` Dmitry Torokhov
@ 2003-12-27 18:11 ` Tomas Szepe
2003-12-27 18:23 ` Dmitry Torokhov
0 siblings, 1 reply; 54+ messages in thread
From: Tomas Szepe @ 2003-12-27 18:11 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Andrew Morton, GCS, linux-kernel, Peter Osterlund
On Dec-27 2003, Sat, 12:28 -0500
Dmitry Torokhov <dtor_core@ameritech.net> wrote:
> > it seems one of the synaptics-related patches in 2.6.0-mm1 kills
> > off the pointer stick on my T40p. 2.6.0 vanilla works just fine
> > in that department. Thought you might want to know.
...
> I have a couple of questions (I am not familiar with IBM hardware so
> please bear with me...):
No problem.
There are two pointer controllers on the T40p: a stick and a pad.
With 2.6.0, just compiling in synaptics support and running gpm as
"gpm -t ps2 -m /dev/psaux" or XFree with
Option "Protocol" "PS/2"
Option "Device" "/dev/psaux"
gives perfect results, both controllers work, even with
all the (3 + 2) buttons.
With 2.6.0-mm1 (the same .config of course), however, the stick does nothing.
> - Is it detected as Synaptics but does not work?
Yes.
> - Should it be detected as Synaptics?
I believe so.
> - Does it work if you pass psmouse_noext=1 or psmouse_proto=bare?
psmouse_noext=1 no change
psmouse_proto=bare no change
> And what about psmouse_proto=imps and psmouse_proto=exps
psmouse_proto=imps no change
psmouse_proto=exps no change
> - Does it work if you give 2.6.0-test10-mm1 a quick boot?
Hmmm, let's see.
[time passes]
-> No.
Linux version 2.6.0-test10-mm1 (kala@ns) (gcc version 3.3.2) #1 Sat Dec 27 18:59:17 CET 2003
...
mice: PS/2 mouse device common for all mice
input: PC Speaker
synaptics reset failed
synaptics reset failed
synaptics reset failed
Synaptics Touchpad, model: 1
Firmware: 5.9
Sensor: 44
new absolute packet format
Touchpad has extended capability bits
-> multifinger detection
-> palm detection
-> pass-through port
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
serio: Synaptics pass-through port at isa0060/serio1/input0
> - dmesg, input section of you XFree and version and parameters that
> are passed to GPM.
Working kernel dmesg:
Linux version 2.6.0 (kala@ns) (gcc version 2.95.3 20010315 (release)) #1 Sat Dec 27 18:59:59 CET 2003
...
mice: PS/2 mouse device common for all mice
input: PC Speaker
Synaptics Touchpad, model: 1
Firmware: 5.9
Sensor: 44
new absolute packet format
Touchpad has extended capability bits
-> multifinger detection
-> palm detection
-> pass-through port
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
serio: Synaptics pass-through port at isa0060/serio1/input0
input: PS/2 Generic Mouse on synaptics-pt/serio0
Broken kernel dmesg:
Linux version 2.6.0-mm1 (kala@ns) (gcc version 3.3.2) #1 Sat Dec 27 14:12:13 CET 2003
...
mice: PS/2 mouse device common for all mice
input: PC Speaker
serio: i8042 AUX port at 0x60,0x64 irq 12
synaptics reset failed
synaptics reset failed
synaptics reset failed
Synaptics Touchpad, model: 1
Firmware: 5.9
Sensor: 44
new absolute packet format
Touchpad has extended capability bits
-> multifinger detection
-> palm detection
-> pass-through port
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
serio: Synaptics pass-through port at isa0060/serio1/input0
...
psmouse.c: TouchPad at isa0060/serio1/input0 lost synchronization, throwing 5 bytes away.
gpm is 1.19.6.
XFree is 4.3.0.
gpm parameters & XFree input config - see above.
--
Tomas Szepe <szepe@pinerecords.com>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 18:11 ` Tomas Szepe
@ 2003-12-27 18:23 ` Dmitry Torokhov
2003-12-27 18:37 ` Tomas Szepe
0 siblings, 1 reply; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-27 18:23 UTC (permalink / raw)
To: Tomas Szepe; +Cc: Andrew Morton, GCS, linux-kernel, Peter Osterlund
On Saturday 27 December 2003 01:11 pm, Tomas Szepe wrote:
> mice: PS/2 mouse device common for all mice
> input: PC Speaker
> synaptics reset failed
> synaptics reset failed
> synaptics reset failed
Ok, are you running with cpufreq? I think it ACPI PM timer if you have
it activated - I am having problems with it myself but didn't have time
to look closer. Could you try booting with clock=tsc or clock=pit and
see if it fixes the touchpad.
Dmitry
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 18:23 ` Dmitry Torokhov
@ 2003-12-27 18:37 ` Tomas Szepe
2003-12-27 18:45 ` Dmitry Torokhov
2003-12-28 0:00 ` Andrew Morton
0 siblings, 2 replies; 54+ messages in thread
From: Tomas Szepe @ 2003-12-27 18:37 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Andrew Morton, GCS, linux-kernel, Peter Osterlund
On Dec-27 2003, Sat, 13:23 -0500
Dmitry Torokhov <dtor_core@ameritech.net> wrote:
> > mice: PS/2 mouse device common for all mice
> > input: PC Speaker
> > synaptics reset failed
> > synaptics reset failed
> > synaptics reset failed
>
> Ok, are you running with cpufreq?
Yes, but
1) I've been on AC all the time.
2) 2.6.0 works.
> I think it ACPI PM timer if you have it activated - I am having problems
> with it myself but didn't have time to look closer. Could you try booting
> with clock=tsc or clock=pit and see if it fixes the touchpad.
clock=tsc appears to fix the problem.
clock=pit no change.
--
Tomas Szepe <szepe@pinerecords.com>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 18:37 ` Tomas Szepe
@ 2003-12-27 18:45 ` Dmitry Torokhov
2003-12-27 19:01 ` Tomas Szepe
2003-12-28 0:00 ` Andrew Morton
1 sibling, 1 reply; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-27 18:45 UTC (permalink / raw)
To: Tomas Szepe; +Cc: Andrew Morton, GCS, linux-kernel, Peter Osterlund
On Saturday 27 December 2003 01:37 pm, Tomas Szepe wrote:
> On Dec-27 2003, Sat, 13:23 -0500
>
> Dmitry Torokhov <dtor_core@ameritech.net> wrote:
> > > mice: PS/2 mouse device common for all mice
> > > input: PC Speaker
> > > synaptics reset failed
> > > synaptics reset failed
> > > synaptics reset failed
> >
> > Ok, are you running with cpufreq?
>
> Yes, but
> 1) I've been on AC all the time.
> 2) 2.6.0 works.
>
Well, I have a daemon that monitors load and dynamically switches
between high and low frequency...
> > I think it ACPI PM timer if you have it activated - I am having
> > problems with it myself but didn't have time to look closer. Could
> > you try booting with clock=tsc or clock=pit and see if it fixes the
> > touchpad.
>
> clock=tsc appears to fix the problem.
> clock=pit no change.
Ok, good. So it is the timer funkiness. I would suggest not using ACPI
PM timer for now then. And yes, timer_pit does not have cpufreq hooks
either so it probably not the best timesource with cpufreq either,
so stick with TSC.
Dmitry
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 18:45 ` Dmitry Torokhov
@ 2003-12-27 19:01 ` Tomas Szepe
2003-12-27 21:00 ` Dmitry Torokhov
0 siblings, 1 reply; 54+ messages in thread
From: Tomas Szepe @ 2003-12-27 19:01 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Andrew Morton, GCS, linux-kernel, Peter Osterlund
> > Dmitry Torokhov <dtor_core@ameritech.net> wrote:
> > > > mice: PS/2 mouse device common for all mice
> > > > input: PC Speaker
> > > > synaptics reset failed
> > > > synaptics reset failed
> > > > synaptics reset failed
> > >
> > > Ok, are you running with cpufreq?
> >
> > Yes, but
> > 1) I've been on AC all the time.
> > 2) 2.6.0 works.
> >
>
> Well, I have a daemon that monitors load and dynamically switches
> between high and low frequency...
Sure, I've got one, too, but configured it to always go full throttle
when on AC.
> > > I think it ACPI PM timer if you have it activated - I am having
> > > problems with it myself but didn't have time to look closer. Could
> > > you try booting with clock=tsc or clock=pit and see if it fixes the
> > > touchpad.
> >
> > clock=tsc appears to fix the problem.
> > clock=pit no change.
>
> Ok, good. So it is the timer funkiness. I would suggest not using ACPI
> PM timer for now then. And yes, timer_pit does not have cpufreq hooks
> either so it probably not the best timesource with cpufreq either,
> so stick with TSC.
Stupid me, I absolutely forgot that I had enabled CONFIG_X86_PM_TIMER
(nonexistent in 2.6.0 stock) which indeed seems to be the culprit.
Please accept my apologies. -mm1 with that config option unset won't
lose the stick, either.
Thanks!
--
Tomas Szepe <szepe@pinerecords.com>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 17:56 ` Marcos D. Marado Torres
@ 2003-12-27 20:59 ` Dmitry Torokhov
0 siblings, 0 replies; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-27 20:59 UTC (permalink / raw)
To: Marcos D. Marado Torres
Cc: Andrew Morton, GCS, linux-kernel, Peter Osterlund, Tomas Szepe
On Saturday 27 December 2003 12:56 pm, Marcos D. Marado Torres wrote:
> It kills the mouse tap on an Asus M3700N laptop too...
Mousedev PS/2 emulation for touchpads in absolute mode does not support
taps. You will either have to use Peter Osterlund's XFree86 driver at:
http://w1.894.telia.com/~u89404340/touchpad/index.html
and an updated version of GPM at http://www.geocities.com/dt_or/gpm
or disable native Synaptics support using psmouse_proto option
(bare, imps or exps; any of them should do the trick).
Dmitry
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 19:01 ` Tomas Szepe
@ 2003-12-27 21:00 ` Dmitry Torokhov
0 siblings, 0 replies; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-27 21:00 UTC (permalink / raw)
To: Tomas Szepe; +Cc: Andrew Morton, GCS, linux-kernel, Peter Osterlund
On Saturday 27 December 2003 02:01 pm, Tomas Szepe wrote:
> > > Dmitry Torokhov <dtor_core@ameritech.net> wrote:
> > Ok, good. So it is the timer funkiness. I would suggest not using
> > ACPI PM timer for now then. And yes, timer_pit does not have cpufreq
> > hooks either so it probably not the best timesource with cpufreq
> > either, so stick with TSC.
>
> Stupid me, I absolutely forgot that I had enabled CONFIG_X86_PM_TIMER
> (nonexistent in 2.6.0 stock) which indeed seems to be the culprit.
> Please accept my apologies. -mm1 with that config option unset won't
> lose the stick, either.
>
> Thanks!
Great! Thank you for letting me know.
Dmitry
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-27 18:37 ` Tomas Szepe
2003-12-27 18:45 ` Dmitry Torokhov
@ 2003-12-28 0:00 ` Andrew Morton
2003-12-28 0:45 ` Dmitry Torokhov
2003-12-28 1:21 ` Tomas Szepe
1 sibling, 2 replies; 54+ messages in thread
From: Andrew Morton @ 2003-12-28 0:00 UTC (permalink / raw)
To: Tomas Szepe; +Cc: dtor_core, gcs, linux-kernel, petero2, john stultz
Tomas Szepe <szepe@pinerecords.com> wrote:
>
> > I think it ACPI PM timer if you have it activated - I am having problems
> > with it myself but didn't have time to look closer. Could you try booting
> > with clock=tsc or clock=pit and see if it fixes the touchpad.
>
> clock=tsc appears to fix the problem.
> clock=pit no change.
So we've established that it is an interaction between the input code, the
ACPI PM time code and cpufreq, yes? That's a bit of a witches brew.
Does anyone know what aspect of the ACPI PM timer behaviour could cause
this?
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-28 0:00 ` Andrew Morton
@ 2003-12-28 0:45 ` Dmitry Torokhov
2003-12-28 1:21 ` Tomas Szepe
1 sibling, 0 replies; 54+ messages in thread
From: Dmitry Torokhov @ 2003-12-28 0:45 UTC (permalink / raw)
To: Andrew Morton, Tomas Szepe; +Cc: gcs, linux-kernel, petero2, john stultz
On Saturday 27 December 2003 07:00 pm, Andrew Morton wrote:
> Tomas Szepe <szepe@pinerecords.com> wrote:
> > > I think it ACPI PM timer if you have it activated - I am having
> > > problems with it myself but didn't have time to look closer.
> > > Could you try booting with clock=tsc or clock=pit and see if it
> > > fixes the touchpad.
> >
> > clock=tsc appears to fix the problem.
> > clock=pit no change.
>
> So we've established that it is an interaction between the input code,
> the ACPI PM time code and cpufreq, yes? That's a bit of a witches
> brew.
>
> Does anyone know what aspect of the ACPI PM timer behaviour could cause
> this?
>From my limited experience ACPI PM timer just gets the time wrong.
At least psmouse times out much quicker than 4 seconds when resetting
the touchpad which causes many problems.
Looking at the PM timer was on my TODO list ever since it was included
in -mm... I tried installing cpufreq handler to do the same adjustments
for loops_per_jiffy as in timer_pit but I was still getting pretty much
the same result - time goes too quickly.
Dmitry
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Synaptics problems in -mm1
2003-12-28 0:00 ` Andrew Morton
2003-12-28 0:45 ` Dmitry Torokhov
@ 2003-12-28 1:21 ` Tomas Szepe
1 sibling, 0 replies; 54+ messages in thread
From: Tomas Szepe @ 2003-12-28 1:21 UTC (permalink / raw)
To: Andrew Morton; +Cc: dtor_core, gcs, linux-kernel, petero2, john stultz
On Dec-27 2003, Sat, 16:00 -0800
Andrew Morton <akpm@osdl.org> wrote:
> Tomas Szepe <szepe@pinerecords.com> wrote:
> >
> > > I think it ACPI PM timer if you have it activated - I am having problems
> > > with it myself but didn't have time to look closer. Could you try booting
> > > with clock=tsc or clock=pit and see if it fixes the touchpad.
> >
> > clock=tsc appears to fix the problem.
> > clock=pit no change.
>
> So we've established that it is an interaction between the input code, the
> ACPI PM time code and cpufreq, yes? That's a bit of a witches brew.
Ok, I have verified this witch is not _that_ cunning. cpufreq actually
seems to be innocent, I am able to reproduce the problem with CONFIG_CPU_FREQ
unset.
--
Tomas Szepe <szepe@pinerecords.com>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
` (7 preceding siblings ...)
2003-12-24 15:39 ` 2.6.0-mm1 Gene Heskett
@ 2003-12-28 10:58 ` Christoph Hellwig
2003-12-28 19:49 ` 2.6.0-mm1 Andrew Morton
8 siblings, 1 reply; 54+ messages in thread
From: Christoph Hellwig @ 2003-12-28 10:58 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm
On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/
>
>
> Quite a lot of new material here. It would be appreciated if people who have
> significant patches in -mm could retest please.
BTW, could you please drop Al's RD* patches? They change the entry points
for block drivers and thus create some hassle for people hacking on out
of tree block drivers, and obviously can't go into mainline as is.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-28 10:58 ` 2.6.0-mm1 Christoph Hellwig
@ 2003-12-28 19:49 ` Andrew Morton
2003-12-28 19:52 ` 2.6.0-mm1 Christoph Hellwig
0 siblings, 1 reply; 54+ messages in thread
From: Andrew Morton @ 2003-12-28 19:49 UTC (permalink / raw)
To: Christoph Hellwig
Cc: linux-kernel, linux-mm, viro@parcelfarce.linux.theplanet.co.uk
Christoph Hellwig <hch@infradead.org> wrote:
>
> On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/
> >
> >
> > Quite a lot of new material here. It would be appreciated if people who have
> > significant patches in -mm could retest please.
>
> BTW, could you please drop Al's RD* patches? They change the entry points
> for block drivers and thus create some hassle for people hacking on out
> of tree block drivers, and obviously can't go into mainline as is.
Have you discussed this with him? I was actually hoping to get those patches
merged up soon.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: 2.6.0-mm1
2003-12-28 19:49 ` 2.6.0-mm1 Andrew Morton
@ 2003-12-28 19:52 ` Christoph Hellwig
0 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2003-12-28 19:52 UTC (permalink / raw)
To: Andrew Morton
Cc: linux-kernel, linux-mm, viro@parcelfarce.linux.theplanet.co.uk
On Sun, Dec 28, 2003 at 11:49:06AM -0800, Andrew Morton wrote:
> Have you discussed this with him? I was actually hoping to get those patches
> merged up soon.
A while ago he said he's gonna redo those parts that don't change the
API for 2.6 and will postpone the rest to 2.7.
^ permalink raw reply [flat|nested] 54+ messages in thread
end of thread, other threads:[~2003-12-28 19:52 UTC | newest]
Thread overview: 54+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-12-24 9:59 2.6.0-mm1 GCS
2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton
2003-12-24 11:53 ` 2.6.0-mm1 GCS
2003-12-24 12:23 ` 2.6.0-mm1 GCS
2003-12-24 15:17 ` 2.6.0-mm1 Dmitry Torokhov
2003-12-24 19:12 ` 2.6.0-mm1 GCS
2003-12-24 12:47 ` 2.6.0-mm1 Thomas Molina
2003-12-25 9:11 ` 2.6.0-mm1 Dmitry Torokhov
2003-12-25 9:13 ` 2.6.0-mm1 - Patch 1/2 - mousedev-remove-jitter Dmitry Torokhov
2003-12-25 9:14 ` 2.6.0-mm1 - Patch 2/2 - mousedev-dont-stop Dmitry Torokhov
2003-12-27 11:38 ` Synaptics problems in -mm1 Tomas Szepe
2003-12-27 12:24 ` GCS
2003-12-27 13:22 ` Tomas Szepe
2003-12-27 17:28 ` Dmitry Torokhov
2003-12-27 18:11 ` Tomas Szepe
2003-12-27 18:23 ` Dmitry Torokhov
2003-12-27 18:37 ` Tomas Szepe
2003-12-27 18:45 ` Dmitry Torokhov
2003-12-27 19:01 ` Tomas Szepe
2003-12-27 21:00 ` Dmitry Torokhov
2003-12-28 0:00 ` Andrew Morton
2003-12-28 0:45 ` Dmitry Torokhov
2003-12-28 1:21 ` Tomas Szepe
2003-12-27 17:56 ` Marcos D. Marado Torres
2003-12-27 20:59 ` Dmitry Torokhov
2003-12-25 18:22 ` 2.6.0-mm1 GCS
2003-12-24 14:38 ` 2.6.0-mm1 GCS
[not found] <20031223170633.GG1601@suse.de>
2003-12-23 17:15 ` 2.6.0-mm1 Pascal Schmidt
-- strict thread matches above, loose matches on Subject: below --
2003-12-23 16:34 2.6.0-mm1 Pascal Schmidt
2003-12-23 16:39 ` 2.6.0-mm1 Jens Axboe
2003-12-23 16:54 ` 2.6.0-mm1 Jens Axboe
2003-12-23 16:58 ` 2.6.0-mm1 Jens Axboe
2003-12-23 17:29 ` 2.6.0-mm1 Pascal Schmidt
2003-12-23 18:49 ` 2.6.0-mm1 Jens Axboe
[not found] <15N7L-7y2-3@gated-at.bofh.it>
2003-12-23 15:41 ` 2.6.0-mm1 Pascal Schmidt
2003-12-23 16:32 ` 2.6.0-mm1 Jens Axboe
2003-12-23 16:46 ` 2.6.0-mm1 Pascal Schmidt
2003-12-23 16:56 ` 2.6.0-mm1 Jens Axboe
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
2003-12-23 5:27 ` 2.6.0-mm1 Valdis.Kletnieks
2003-12-23 5:28 ` 2.6.0-mm1 Marcos D. Marado Torres
2003-12-23 5:28 ` 2.6.0-mm1 Andrew Morton
2003-12-23 5:40 ` 2.6.0-mm1 Stan Bubrouski
2003-12-23 7:57 ` 2.6.0-mm1 Andrew Walrond
2003-12-23 7:30 ` 2.6.0-mm1 Martin J. Bligh
2003-12-23 17:29 ` 2.6.0-mm1 Tom Rini
2003-12-23 17:31 ` 2.6.0-mm1 Tom Rini
2003-12-23 21:08 ` 2.6.0-mm1 viro
2003-12-24 13:09 ` 2.6.0-mm1 William Lee Irwin III
2003-12-24 14:26 ` 2.6.0-mm1 William Lee Irwin III
2003-12-24 15:39 ` 2.6.0-mm1 Gene Heskett
2003-12-28 10:58 ` 2.6.0-mm1 Christoph Hellwig
2003-12-28 19:49 ` 2.6.0-mm1 Andrew Morton
2003-12-28 19:52 ` 2.6.0-mm1 Christoph Hellwig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox