* test13-pre3
@ 2000-12-17 21:55 Linus Torvalds
2000-12-17 23:43 ` test13-pre3 Albert Cranford
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Linus Torvalds @ 2000-12-17 21:55 UTC (permalink / raw)
To: Kernel Mailing List
The most noticeable part of this is that the run_task_queue fix should
cure the lockup that some people have seen.
The shmfs cleanup should be unnoticeable except to users who use SAP with
huge shared memory segments, where Christoph Rohlands work not only
makes the code much more readable, it should also make it dependable..
Linus
----
- pre3:
- Christian Jullien: smc9194: proper dev_kfree_skb_irq
- Cort Dougan: new-style PowerPC Makefiles
- Andrew Morton, Petr Vandrovec: fix run_task_queue
- Christoph Rohland: shmfs for shared memory handling
- pre2:
- Kai Germaschewski: ISDN update (including Makefiles)
- Jens Axboe: cdrom updates
- Petr Vandrovec; Matrox G450 support
- Bill Nottingham: fix FAT32 filesystems on 64-bit platforms
- David Miller: sparc (and other) Makefile fixup
- Andrea Arkangeli: alpha SMP TLB context fix (and cleanups)
- Niels Kristian Bech Jensen: checkconfig, USB warnings
- Andrew Grover: large ACPI update
- pre1:
- me: drop support for old-style Makefiles entirely. Big.
- me: check b_end_io at the IO submission path
- me: fix "ptep_mkdirty()" (so that swapoff() works correctly)
- fix fault case in copy_from_user() with a constant size, where
((size & 3) == 3)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3
2000-12-17 21:55 test13-pre3 Linus Torvalds
@ 2000-12-17 23:43 ` Albert Cranford
2000-12-18 5:50 ` test13-pre3 woes J Sloan
2000-12-18 6:00 ` test13-pre3 Peter Samuelson
2000-12-18 12:58 ` test13-pre3 Maciej W. Rozycki
2000-12-18 14:34 ` test13-pre3 Christoph Rohland
2 siblings, 2 replies; 13+ messages in thread
From: Albert Cranford @ 2000-12-17 23:43 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Kernel Mailing List
With CONFIG_DRM_R128=m
we fail to produce module linux/drivers/char/drm/r128.o
Any thoughts.
Albert
Linus Torvalds wrote:
>
> The most noticeable part of this is that the run_task_queue fix should
> cure the lockup that some people have seen.
>
> The shmfs cleanup should be unnoticeable except to users who use SAP with
> huge shared memory segments, where Christoph Rohlands work not only
> makes the code much more readable, it should also make it dependable..
>
> Linus
>
> ----
>
> - pre3:
> - Christian Jullien: smc9194: proper dev_kfree_skb_irq
> - Cort Dougan: new-style PowerPC Makefiles
> - Andrew Morton, Petr Vandrovec: fix run_task_queue
> - Christoph Rohland: shmfs for shared memory handling
>
--
Albert Cranford Deerfield Beach FL USA
ac9410@bellsouth.net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3 woes
2000-12-17 23:43 ` test13-pre3 Albert Cranford
@ 2000-12-18 5:50 ` J Sloan
2000-12-18 6:03 ` Niels Kristian Bech Jensen
2000-12-18 6:00 ` test13-pre3 Peter Samuelson
1 sibling, 1 reply; 13+ messages in thread
From: J Sloan @ 2000-12-18 5:50 UTC (permalink / raw)
To: Kernel Mailing List
Similar problem here - with CONFIG_DRM_TDFX=m
I have not gotten a tdfx.o module complied since the
start of the test13-pre series...
So no quake 3 arena unless I want to play at < 1 fps...
:(
jjs
Albert Cranford wrote:
> With CONFIG_DRM_R128=m
> we fail to produce module linux/drivers/char/drm/r128.o
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3
2000-12-17 23:43 ` test13-pre3 Albert Cranford
2000-12-18 5:50 ` test13-pre3 woes J Sloan
@ 2000-12-18 6:00 ` Peter Samuelson
1 sibling, 0 replies; 13+ messages in thread
From: Peter Samuelson @ 2000-12-18 6:00 UTC (permalink / raw)
To: Albert Cranford; +Cc: Linus Torvalds, Kernel Mailing List
[Albert Cranford]
> With CONFIG_DRM_R128=m
> we fail to produce module linux/drivers/char/drm/r128.o
He's right. Linus, please apply.
Peter
--- test13pre3/drivers/char/Makefile.orig Wed Dec 13 23:56:01 2000
+++ test13pre3/drivers/char/Makefile Sun Dec 17 23:55:00 2000
@@ -25,6 +25,7 @@
misc.o pty.o random.o selection.o serial.o \
tty_io.o
+mod-subdirs := joystick ftape drm pcmcia
list-multi :=
KEYMAP =defkeymap.o
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3 woes
2000-12-18 5:50 ` test13-pre3 woes J Sloan
@ 2000-12-18 6:03 ` Niels Kristian Bech Jensen
2000-12-18 8:51 ` J Sloan
0 siblings, 1 reply; 13+ messages in thread
From: Niels Kristian Bech Jensen @ 2000-12-18 6:03 UTC (permalink / raw)
To: J Sloan; +Cc: Linux kernel developer's mailing list
On Mon, 18 Dec 2000, J Sloan wrote:
> Similar problem here - with CONFIG_DRM_TDFX=m
> I have not gotten a tdfx.o module complied since the
> start of the test13-pre series...
>
> So no quake 3 arena unless I want to play at < 1 fps...
>
Does this patch fix your problem?
--- test13-pre3/drivers/char/Makefile Mon Dec 18 01:21:31 2000
+++ linux/drivers/char/Makefile Mon Dec 18 06:58:06 2000
@@ -16,6 +16,8 @@
O_TARGET := char.o
+mod-subdirs := drm
+
obj-y += tty_io.o n_tty.o tty_ioctl.o mem.o raw.o pty.o misc.o random.o
# All of the (potential) objects that export symbols.
--
Niels Kristian Bech Jensen -- nkbj@image.dk -- http://www.image.dk/~nkbj/
----------->> Stop software piracy --- use free software! <<-----------
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3 woes
2000-12-18 6:03 ` Niels Kristian Bech Jensen
@ 2000-12-18 8:51 ` J Sloan
2000-12-18 9:19 ` Peter Samuelson
2000-12-20 6:02 ` J Sloan
0 siblings, 2 replies; 13+ messages in thread
From: J Sloan @ 2000-12-18 8:51 UTC (permalink / raw)
To: Niels Kristian Bech Jensen; +Cc: Linux kernel developer's mailing list
Niels Kristian Bech Jensen wrote:
> Does this patch fix your problem?
>
> --- test13-pre3/drivers/char/Makefile Mon Dec 18 01:21:31 2000
> +++ linux/drivers/char/Makefile Mon Dec 18 06:58:06 2000
> @@ -16,6 +16,8 @@
>
> O_TARGET := char.o
>
> +mod-subdirs := drm
> +
> obj-y += tty_io.o n_tty.o tty_ioctl.o mem.o raw.o pty.o misc.o random.o
>
Some progress anyway;
The module now compiles and gets installed -
Unfortunately, attempting to load it does not go well:
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
remap_page_range
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
__wake_up
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
mtrr_add
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
__generic_copy_from_user
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
schedule
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
kmalloc
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
si_meminfo
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
create_proc_entry
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
inter_module_put
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
__get_free_pages
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
boot_cpu_data
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
inter_module_get
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
remove_wait_queue
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
high_memory
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
iounmap
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
free_pages
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
__ioremap
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
del_timer
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
interruptible_sleep_on
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
__pollwait
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
kfree
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
remove_proc_entry
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
pci_find_slot/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o:
unresolved symbol
kill_fasync
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
fasync_helper
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
add_wait_queue
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
do_mmap_pgoff
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
mem_map
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
sprintf
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
jiffies
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
printk
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
add_timer
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: unresolved
symbol
__generic_copy_to_user
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: insmod
/lib/modul
es/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o failed
/lib/modules/2.4.0-test13-pre3/kernel/drivers/char/drm/tdfx.o: insmod tdfx
failed
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3 woes
2000-12-18 8:51 ` J Sloan
@ 2000-12-18 9:19 ` Peter Samuelson
2000-12-18 14:27 ` Olaf Titz
2000-12-20 6:02 ` J Sloan
1 sibling, 1 reply; 13+ messages in thread
From: Peter Samuelson @ 2000-12-18 9:19 UTC (permalink / raw)
To: J Sloan
Cc: Niels Kristian Bech Jensen, Linux kernel developer's mailing list
[J Sloan]
> The module now compiles and gets installed -
> Unfortunately, attempting to load it does not go well:
>
> kernel/drivers/char/drm/tdfx.o: unresolved symbol remap_page_range
> kernel/drivers/char/drm/tdfx.o: unresolved symbol __wake_up
> kernel/drivers/char/drm/tdfx.o: unresolved symbol mtrr_add
> kernel/drivers/char/drm/tdfx.o: unresolved symbol __generic_copy_from_user
> kernel/drivers/char/drm/tdfx.o: unresolved symbol schedule
> kernel/drivers/char/drm/tdfx.o: unresolved symbol kmalloc
> kernel/drivers/char/drm/tdfx.o: unresolved symbol si_meminfo
Those symbols are rather generic and rather important. Sounds like a
generic module problem. Do other modules load? Does your kernel use
MODVERSIONS? (This module apparently doesn't.) Are you using a recent
version of modutils?
Puzzled. Maybe Keith Owens knows something.
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3
2000-12-17 21:55 test13-pre3 Linus Torvalds
2000-12-17 23:43 ` test13-pre3 Albert Cranford
@ 2000-12-18 12:58 ` Maciej W. Rozycki
2000-12-18 14:34 ` test13-pre3 Christoph Rohland
2 siblings, 0 replies; 13+ messages in thread
From: Maciej W. Rozycki @ 2000-12-18 12:58 UTC (permalink / raw)
To: Linus Torvalds, Ingo Molnar; +Cc: Kernel Mailing List
Hi,
What is this change about?
diff -u --recursive --new-file v2.4.0-test12/linux/arch/i386/kernel/smpboot.c linux/arch/i386/kernel/smpboot.c
--- v2.4.0-test12/linux/arch/i386/kernel/smpboot.c Mon Dec 11 17:59:43 2000
+++ linux/arch/i386/kernel/smpboot.c Thu Dec 14 14:54:40 2000
@@ -694,6 +694,11 @@
apic_write_around(APIC_ICR, APIC_DM_STARTUP
| (start_eip >> 12));
+ /*
+ * Give the other CPU some time to accept the IPI.
+ */
+ udelay(300);
+
Dprintk("Startup point 1.\n");
Dprintk("Waiting for send to finish...\n");
There is the following code is just after it, making the above change
just useless garbage:
timeout = 0;
do {
Dprintk("+");
udelay(100);
send_status = apic_read(APIC_ICR) & APIC_ICR_BUSY;
} while (send_status && (timeout++ < 1000));
/*
* Give the other CPU some time to accept the IPI.
*/
udelay(200);
If we need 600usecs of delay for certain systems, then why not just make
it like below?
Maciej
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
patch-2.0.4-test13-pre3-startup_ipi-0
diff -up --recursive --new-file linux-2.4.0-test13-pre3.macro/arch/i386/kernel/smpboot.c linux-2.4.0-test13-pre3/arch/i386/kernel/smpboot.c
--- linux-2.4.0-test13-pre3.macro/arch/i386/kernel/smpboot.c Mon Dec 18 12:14:10 2000
+++ linux-2.4.0-test13-pre3/arch/i386/kernel/smpboot.c Mon Dec 18 12:15:49 2000
@@ -694,11 +694,6 @@ static void __init do_boot_cpu (int apic
apic_write_around(APIC_ICR, APIC_DM_STARTUP
| (start_eip >> 12));
- /*
- * Give the other CPU some time to accept the IPI.
- */
- udelay(300);
-
Dprintk("Startup point 1.\n");
Dprintk("Waiting for send to finish...\n");
@@ -712,7 +707,7 @@ static void __init do_boot_cpu (int apic
/*
* Give the other CPU some time to accept the IPI.
*/
- udelay(200);
+ udelay(500);
/*
* Due to the Pentium erratum 3AP.
*/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3 woes
2000-12-18 9:19 ` Peter Samuelson
@ 2000-12-18 14:27 ` Olaf Titz
2000-12-19 0:01 ` J Sloan
0 siblings, 1 reply; 13+ messages in thread
From: Olaf Titz @ 2000-12-18 14:27 UTC (permalink / raw)
To: linux-kernel
In article <20001218031912.E3199@cadcamlab.org> you write:
> [J Sloan]
> > The module now compiles and gets installed -
> > Unfortunately, attempting to load it does not go well:
> >
> > kernel/drivers/char/drm/tdfx.o: unresolved symbol remap_page_range
>...
> Those symbols are rather generic and rather important. Sounds like a
> generic module problem. Do other modules load? Does your kernel use
> MODVERSIONS? (This module apparently doesn't.) Are you using a recent
> version of modutils?
The most important question: Did you run "make dep" after doing the patch?
Olaf
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3
2000-12-17 21:55 test13-pre3 Linus Torvalds
2000-12-17 23:43 ` test13-pre3 Albert Cranford
2000-12-18 12:58 ` test13-pre3 Maciej W. Rozycki
@ 2000-12-18 14:34 ` Christoph Rohland
2000-12-18 19:24 ` test13-pre3 Christoph Rohland
2 siblings, 1 reply; 13+ messages in thread
From: Christoph Rohland @ 2000-12-18 14:34 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Kernel Mailing List
Hi Linus,
On Sun, 17 Dec 2000, Linus Torvalds wrote:
> The shmfs cleanup should be unnoticeable except to users who use SAP
> with huge shared memory segments, where Christoph Rohlands work not
> only makes the code much more readable, it should also make it
> dependable..
:-)
The appended patch fixes the following:
1) We cannot unlock the page in shmem_writepage on ooswap since
page_launder will do this later.
2) We should set the inode number of SYSV segments to the (user) shmid
and not the internal id.
Greetings
Christoph
diff -uNr 4-13-3/mm/shmem.c c/mm/shmem.c
--- 4-13-3/mm/shmem.c Mon Dec 18 15:08:32 2000
+++ c/mm/shmem.c Mon Dec 18 15:13:10 2000
@@ -210,37 +210,39 @@
{
int error;
struct shmem_inode_info *info;
- swp_entry_t *entry;
+ swp_entry_t *entry, swap;
info = &((struct inode *)page->mapping->host)->u.shmem_i;
if (info->locked)
return 1;
- spin_lock(&info->lock);
- entry = shmem_swp_entry (info, page->index);
- if (!entry) /* this had been allocted on page allocation */
- BUG();
- error = -EAGAIN;
- if (entry->val)
- goto out;
-
/*
* 1 means "cannot write out".
* We can't drop dirty pages
* just because we ran out of
* swap.
*/
- error = 1;
- *entry = __get_swap_page(2);
- if (!entry->val)
+ swap = __get_swap_page(2);
+ if (!swap.val)
+ return 1;
+
+ spin_lock(&info->lock);
+ entry = shmem_swp_entry (info, page->index);
+ if (!entry) /* this had been allocted on page allocation */
+ BUG();
+ error = -EAGAIN;
+ if (entry->val) {
+ __swap_free(swap, 2);
goto out;
+ }
+ *entry = swap;
error = 0;
/* Remove the from the page cache */
lru_cache_del(page);
remove_inode_page(page);
/* Add it to the swap cache */
- add_to_swap_cache(page,*entry);
+ add_to_swap_cache(page, swap);
page_cache_release(page);
SetPageDirty(page);
info->swapped++;
diff -uNr 4-13-3/ipc/shm.c c/ipc/shm.c
--- 4-13-3/ipc/shm.c Mon Dec 18 15:08:32 2000
+++ c/ipc/shm.c Mon Dec 18 15:13:58 2000
@@ -220,7 +220,7 @@
shp->shm_segsz = size;
shp->id = shm_buildid(id,shp->shm_perm.seq);
shp->shm_file = file;
- file->f_dentry->d_inode->i_ino = id;
+ file->f_dentry->d_inode->i_ino = shp->id;
file->f_op = &shm_file_operations;
shm_tot += numpages;
shm_unlock (id);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3
2000-12-18 14:34 ` test13-pre3 Christoph Rohland
@ 2000-12-18 19:24 ` Christoph Rohland
0 siblings, 0 replies; 13+ messages in thread
From: Christoph Rohland @ 2000-12-18 19:24 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Kernel Mailing List
Hi Linus,
On 18 Dec 2000, Christoph Rohland wrote:
> The appended patch fixes the following:
>
> 1) We cannot unlock the page in shmem_writepage on ooswap since
> page_launder will do this later.
>
> 2) We should set the inode number of SYSV segments to the (user)
> shmid and not the internal id.
And here additionally is the SYSV detach/destroy logic fixed which
(again) left destroyed shm segments hang around :-(
I also cleaned up the list of included files in ipc/shm.c
Greetings
Christoph
diff -uNr 4-13-3/ipc/shm.c c/ipc/shm.c
--- 4-13-3/ipc/shm.c Mon Dec 18 15:08:32 2000
+++ c/ipc/shm.c Mon Dec 18 20:07:21 2000
@@ -15,23 +15,13 @@
*
*/
-#include <linux/config.h>
-#include <linux/module.h>
#include <linux/malloc.h>
#include <linux/shm.h>
-#include <linux/swap.h>
-#include <linux/smp_lock.h>
#include <linux/init.h>
-#include <linux/locks.h>
#include <linux/file.h>
#include <linux/mman.h>
-#include <linux/vmalloc.h>
-#include <linux/pagemap.h>
#include <linux/proc_fs.h>
-#include <linux/highmem.h>
-
#include <asm/uaccess.h>
-#include <asm/pgtable.h>
#include "util.h"
@@ -109,6 +99,7 @@
BUG();
shp->shm_atim = CURRENT_TIME;
shp->shm_lprid = current->pid;
+ shp->shm_nattch++;
shm_unlock(id);
}
@@ -123,21 +114,14 @@
*
* @shp: struct to free
*
- * It has to be called with shp and shm_ids.sem locked and will
- * release them
+ * It has to be called with shp and shm_ids.sem locked
*/
static void shm_destroy (struct shmid_kernel *shp)
{
- struct file * file = shp->shm_file;
-
- shp->shm_file = NULL;
shm_tot -= (shp->shm_segsz + PAGE_SIZE - 1) >> PAGE_SHIFT;
- shm_unlock (shp->id);
shm_rmid (shp->id);
+ fput (shp->shm_file);
kfree (shp);
- up (&shm_ids.sem);
- /* put the file outside the critical path to prevent recursion */
- fput (file);
}
/*
@@ -158,10 +142,10 @@
BUG();
shp->shm_lprid = current->pid;
shp->shm_dtim = CURRENT_TIME;
- if(shp->shm_flags & SHM_DEST &&
- file_count (file) == 2) /* shp and the vma have the last
- references*/
- return shm_destroy (shp);
+ shp->shm_nattch--;
+ if(shp->shm_nattch == 0 &&
+ shp->shm_flags & SHM_DEST)
+ shm_destroy (shp);
shm_unlock(id);
up (&shm_ids.sem);
@@ -176,7 +160,7 @@
}
static struct file_operations shm_file_operations = {
- mmap: shm_mmap
+ mmap: shm_mmap
};
static struct vm_operations_struct shm_vm_ops = {
@@ -218,9 +202,10 @@
shp->shm_atim = shp->shm_dtim = 0;
shp->shm_ctim = CURRENT_TIME;
shp->shm_segsz = size;
+ shp->shm_nattch = 0;
shp->id = shm_buildid(id,shp->shm_perm.seq);
shp->shm_file = file;
- file->f_dentry->d_inode->i_ino = id;
+ file->f_dentry->d_inode->i_ino = shp->id;
file->f_op = &shm_file_operations;
shm_tot += numpages;
shm_unlock (id);
@@ -370,15 +355,13 @@
struct inode * inode;
shp = shm_get(i);
- if(shp == NULL || shp->shm_file == NULL)
+ if(shp == NULL)
continue;
inode = shp->shm_file->f_dentry->d_inode;
- down (&inode->i_sem);
- *rss += inode->i_mapping->nrpages;
spin_lock (&inode->u.shmem_i.lock);
+ *rss += inode->i_mapping->nrpages;
*swp += inode->u.shmem_i.swapped;
spin_unlock (&inode->u.shmem_i.lock);
- up (&inode->i_sem);
}
}
@@ -462,7 +445,7 @@
tbuf.shm_ctime = shp->shm_ctim;
tbuf.shm_cpid = shp->shm_cprid;
tbuf.shm_lpid = shp->shm_lprid;
- tbuf.shm_nattch = file_count (shp->shm_file) - 1;
+ tbuf.shm_nattch = shp->shm_nattch;
shm_unlock(shmid);
if(copy_shmid_to_user (buf, &tbuf, version))
return -EFAULT;
@@ -512,13 +495,12 @@
goto out_up;
err = shm_checkid(shp, shmid);
if (err == 0) {
- if (file_count (shp->shm_file) == 1) {
+ if (shp->shm_nattch){
+ shp->shm_flags |= SHM_DEST;
+ /* Do not find it any more */
+ shp->shm_perm.key = IPC_PRIVATE;
+ } else
shm_destroy (shp);
- return 0;
- }
- shp->shm_flags |= SHM_DEST;
- /* Do not find it any more */
- shp->shm_perm.key = IPC_PRIVATE;
}
/* Unlock */
shm_unlock(shmid);
@@ -619,13 +601,23 @@
return -EACCES;
}
file = shp->shm_file;
- get_file (file);
+ shp->shm_nattch++;
shm_unlock(shmid);
down(¤t->mm->mmap_sem);
user_addr = (void *) do_mmap (file, addr, file->f_dentry->d_inode->i_size, prot, flags, 0);
up(¤t->mm->mmap_sem);
- fput (file);
+
+ down (&shm_ids.sem);
+ if(!(shp = shm_lock(shmid)))
+ BUG();
+ shp->shm_nattch--;
+ if(shp->shm_nattch == 0 &&
+ shp->shm_flags & SHM_DEST)
+ shm_destroy (shp);
+ shm_unlock(shmid);
+ up (&shm_ids.sem);
+
*raddr = (unsigned long) user_addr;
err = 0;
if (IS_ERR(user_addr))
@@ -684,7 +676,7 @@
shp->shm_segsz,
shp->shm_cprid,
shp->shm_lprid,
- file_count (shp->shm_file) - 1,
+ shp->shm_nattch,
shp->shm_perm.uid,
shp->shm_perm.gid,
shp->shm_perm.cuid,
diff -uNr 4-13-3/mm/shmem.c c/mm/shmem.c
--- 4-13-3/mm/shmem.c Mon Dec 18 15:08:32 2000
+++ c/mm/shmem.c Mon Dec 18 15:13:10 2000
@@ -210,37 +210,39 @@
{
int error;
struct shmem_inode_info *info;
- swp_entry_t *entry;
+ swp_entry_t *entry, swap;
info = &((struct inode *)page->mapping->host)->u.shmem_i;
if (info->locked)
return 1;
- spin_lock(&info->lock);
- entry = shmem_swp_entry (info, page->index);
- if (!entry) /* this had been allocted on page allocation */
- BUG();
- error = -EAGAIN;
- if (entry->val)
- goto out;
-
/*
* 1 means "cannot write out".
* We can't drop dirty pages
* just because we ran out of
* swap.
*/
- error = 1;
- *entry = __get_swap_page(2);
- if (!entry->val)
+ swap = __get_swap_page(2);
+ if (!swap.val)
+ return 1;
+
+ spin_lock(&info->lock);
+ entry = shmem_swp_entry (info, page->index);
+ if (!entry) /* this had been allocted on page allocation */
+ BUG();
+ error = -EAGAIN;
+ if (entry->val) {
+ __swap_free(swap, 2);
goto out;
+ }
+ *entry = swap;
error = 0;
/* Remove the from the page cache */
lru_cache_del(page);
remove_inode_page(page);
/* Add it to the swap cache */
- add_to_swap_cache(page,*entry);
+ add_to_swap_cache(page, swap);
page_cache_release(page);
SetPageDirty(page);
info->swapped++;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3 woes
2000-12-18 14:27 ` Olaf Titz
@ 2000-12-19 0:01 ` J Sloan
0 siblings, 0 replies; 13+ messages in thread
From: J Sloan @ 2000-12-19 0:01 UTC (permalink / raw)
To: Olaf Titz; +Cc: linux-kernel, Peter Samuelson, Niels Kristian Bech Jensen
Olaf Titz wrote:
> In article <20001218031912.E3199@cadcamlab.org> you write:
> > [J Sloan]
> > >
> > > kernel/drivers/char/drm/tdfx.o: unresolved symbol remap_page_range
> >...
> > Those symbols are rather generic and rather important. Sounds like a
> > generic module problem. Do other modules load?
Yes, rtl8139, emu10k are loaded and working fine.
> Does your kernel use
> > MODVERSIONS?
Yes, I have CONFIG_MODVERSIONS=y
> (This module apparently doesn't.) Are you using a recent
> > version of modutils?
# insmod -V
insmod version 2.3.21
...
> The most important question: Did you run "make dep" after doing the patch?
Yes, after the patch, it was, as always:
make clean
make menuconfig
make dep bzlilo modules modules_install
Same problem with 2.4.0-test13-pre3-ac1 on
my Linux workstation at the office, where the
token ring driver fails as well (olympic.o)
BTW, in my experience to date with kernels from
2.3.36 up to 2.4.0-test-12 it has all worked well.
jjs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: test13-pre3 woes
2000-12-18 8:51 ` J Sloan
2000-12-18 9:19 ` Peter Samuelson
@ 2000-12-20 6:02 ` J Sloan
1 sibling, 0 replies; 13+ messages in thread
From: J Sloan @ 2000-12-20 6:02 UTC (permalink / raw)
To: Kernel Mailing List
The saga continues into test13-pre3-ac3:
(last good tdfx.o was from test12)
# uname -a
Linux jyro.mirai.cx 2.4.0-test13pre3-ac3 #1 Tue Dec 19 21:26:36 PST 2000 i586
unknown
# lsmod
Module Size Used by
iptable_filter 1872 0 (autoclean) (unused)
ip_nat_ftp 3424 0 (unused)
iptable_nat 12672 1 [ip_nat_ftp]
ip_conntrack_ftp 2048 0 (unused)
ip_conntrack 13056 2 [ip_nat_ftp iptable_nat ip_conntrack_ftp]
ip_tables 10624 4 [iptable_filter iptable_nat]
ide-scsi 8096 0
8139too 15024 2 (autoclean)
emu10k1 45248 0
# modprobe tdfx
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol remap_page_range
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol __wake_up
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol mtrr_add
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol __generic_copy_from_user
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol schedule
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol kmalloc
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol si_meminfo
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol create_proc_entry
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol inter_module_put
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol __get_free_pages
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol boot_cpu_data
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol inter_module_get
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol remove_wait_queue
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol high_memory
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol iounmap
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol free_pages
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol __ioremap
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol del_timer
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol interruptible_sleep_on
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol __pollwait
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol kfree
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol remove_proc_entry
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol pci_find_slot
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol kill_fasync
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol fasync_helper
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol add_wait_queue
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol do_mmap_pgoff
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol mem_map
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol sprintf
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol jiffies
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol printk
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol add_timer
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: unresolved
sym
bol __generic_copy_to_user
/lib/modules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o: insmod
/lib/mo
dules/2.4.0-test13pre3-ac3/kernel/drivers/char/drm/tdfx.o failed
Hope this helps -
jjs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2000-12-20 6:32 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-17 21:55 test13-pre3 Linus Torvalds
2000-12-17 23:43 ` test13-pre3 Albert Cranford
2000-12-18 5:50 ` test13-pre3 woes J Sloan
2000-12-18 6:03 ` Niels Kristian Bech Jensen
2000-12-18 8:51 ` J Sloan
2000-12-18 9:19 ` Peter Samuelson
2000-12-18 14:27 ` Olaf Titz
2000-12-19 0:01 ` J Sloan
2000-12-20 6:02 ` J Sloan
2000-12-18 6:00 ` test13-pre3 Peter Samuelson
2000-12-18 12:58 ` test13-pre3 Maciej W. Rozycki
2000-12-18 14:34 ` test13-pre3 Christoph Rohland
2000-12-18 19:24 ` test13-pre3 Christoph Rohland
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).