[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-arm-kernel
Subject:    RE: [CFT] Mark IO as bufferable
From:       "Paugam Luc" <luc.paugam () thomson ! net>
Date:       2005-06-29 15:38:46
Message-ID: 1CFEB358338412458B21FAA0D78FE86D0314D32B () rennsmail02 ! eu ! thmulti ! com
[Download RAW message or body]

 Dear Russell,

My Linux dev. Env: eldk-arm-linux-x86 v3.1.1, U-Boot 1.1.2, 
                   ARCH=arm, CPU=AT91RM9200, BOARD="custom"

I made the test on my custom board running an AT91RM9200.
The Linux kernel boots well and mount its root filesystem exported
through NFS.
I don't see any problems. See the boot messages:

run net_linux_nfs
Set EMAC for 100Base-TX and Half Duplex
TFTP from server 141.11.158.11; our IP address is 141.11.154.91
Filename
'/home/prome/prometheus_database/BDI2000/TRITONIS/141.11.154.91/images/u
Image'.
Load address: 0x21000000
Loading:
#################################################################
 
#################################################################
         ######################################
done
Bytes transferred = 856299 (d10eb hex)
## Booting image at 21000000 ...
   Image Name:   ARM Linux-2.6.12
   Image Type:   ARM Linux Kernel Image (gzip compressed)
   Data Size:    856235 Bytes = 836.2 kB
   Load Address: 20008000
   Entry Point:  20008000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

Starting kernel ...

Linux version 2.6.12 (prome_lp@renndlxrdl0817) (gcc version 3.3.3 (DENX
ELDK 3.1.1 3.3.3-9)) #9 Wed Jun 29 17:31:50 CEST 2005
CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Machine: THOMSON Silicon Component's TRITONIS Demonstration Board
(including Brubeck IC v1)
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists
Kernel command line: root=/dev/nfs rw
nfsroot=141.11.158.11:/home/prome/prometheus_database/BDI2000/TRITONIS/1
41.11.154.91/images/141.11.154.91
ip=141.11.154.91:141.11.158.11:141.11.159.1:255.255.240.0:Tritonis:eth0:
off panic=1 console=ttyS0,115200
AT91: 128 gpio irqs in 4 banks
PID hash table entries: 512 (order: 9, 8192 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 64MB = 64MB total
Memory: 62976KB available (1451K code, 301K data, 84K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
NetWinder Floating Point Emulator V0.97 (double precision)
AT91 Real Time Clock driver.
ttyS0 at MMIO 0xfefc0000 (irq = 6) is a AT91_SERIAL
ttyS1 at MMIO 0xfefc4000 (irq = 7) is a AT91_SERIAL
io scheduler noop registered
io scheduler anticipatory registered
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
eth0: Link now 100-HalfDuplex
eth0: AT91 ethernet at 0xfefbc000 int=24 100-HalfDuplex
(00:10:95:99:01:f5)
eth0: AMD Am79C874 PHY
mice: PS/2 mouse device common for all mice
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
NET: Registered protocol family 1
NET: Registered protocol family 17
eth0: Link now 100-HalfDuplex
IP-Config: Complete:
      device=eth0, addr=141.11.154.91, mask=255.255.240.0,
gw=141.11.159.1,
     host=Tritonis, domain=, nis-domain=(none),
     bootserver=141.11.158.11, rootserver=141.11.158.11, rootpath=
Looking up port of RPC 100003/2 on 141.11.158.11
Looking up port of RPC 100005/1 on 141.11.158.11
VFS: Mounted root (nfs filesystem).
Freeing init memory: 84K
INIT: version 2.84 booting
                Welcome to TSC Embedded Linux Environment
                Press 'I' to enter interactive startup.
Building the cache [  OK  ]
Mounting proc filesystem:  [  OK  ]
Configuring kernel parameters:  [  OK  ]
Setting clock : Thu Jan  1 00:00:26 EST 1998 [  OK  ]
Setting hostname Tritonis:  [  OK  ]
modprobe: QM_MODULES: Function not implemented

Activating swap partitions:  [  OK  ]
Checking filesystems
[  OK  ]
Mounting local filesystems:  [  OK  ]
Enabling swap space:  [  OK  ]
modprobe: QM_MODULES: Function not implemented

INIT: Entering runlevel: 3
Entering non-interactive startup
Setting network parameters:  [  OK  ]
Bringing up loopback interface:  [  OK  ]
Starting system logger: [  OK  ]
Starting kernel logger: [  OK  ]
Initializing random number generator:  [  OK  ]
Starting portmapper: [  OK  ]
Mounting NFS filesystems:  [  OK  ]
Mounting other filesystems:  [  OK  ]
Starting xinetd: [  OK  ]

Tritonis login: root
root

Last login: Thu Jan  1 00:00:56 on console
bash-2.05b#

-----Original Message-----
From: linux-arm-kernel-bounces@lists.arm.linux.org.uk
[mailto:linux-arm-kernel-bounces@lists.arm.linux.org.uk] On Behalf Of
Russell King - ARM Linux
Sent: lundi 27 juin 2005 18:38
To: linux-arm-kernel@lists.arm.linux.org.uk
Subject: [CFT] Mark IO as bufferable

Can people please test out the effect of this change.  Potentially it
should get slightly better IO performance.  Or it could prevent the
kernel booting.

Please let me know what CPUs it works / does not work with, and also the
outcome of the write buffer test on a kernel without this patch applied.
IOW, the line starting:

	CPU: Testing write buffer coherency

Thanks.

--- orig/arch/arm/mm/mm-armv.c	Tue May 17 07:03:11 2005
+++ linux/arch/arm/mm/mm-armv.c	Mon Jun 27 17:32:52 2005
@@ -428,6 +428,12 @@ static void __init build_mem_type_table(
 		mem_types[MT_CACHECLEAN].prot_sect |=
PMD_SECT_APX|PMD_SECT_AP_WRITE;
 	}
 
+	/*
+	 * Mark device areas as "device"
+	 */
+	mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED;
+	mem_types[MT_DEVICE].prot_pte |= L_PTE_BUFFERABLE;
+
 	cp = &cache_policies[cachepolicy];
 
 	if (cpu_arch >= CPU_ARCH_ARMv5) {

-------------------------------------------------------------------
List admin:
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php


-------------------------------------------------------------------
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic