[lkml]   [2005]   [Jul]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectWhats in this vaddr segment 0xffffe000-0xfffff000 ---p ?
Hello All,

Sorry to interrupt you.

I have been facing a wierd problem on same kernel version
(2.6.5-7.97.smp) but running on different machines 32-bit and 64-bit
(which can run 32-bit also).

I found that every process running in this kernel version has a
virtual address mapping in /proc/<pid>/maps file as follows
ffffe000-ffff000 ---p 00000000 00:00 0

You can find this vaddr mapping at end of maps file.

on a 64-bit(uname --all == 'Linux host 2.6.5-7.97.smp #1 <time stamp>
x86_64 x86_64 x86_64 GNU/Linux) machine which is running the same
kernel, I try to write the contents of the virtual address on to file
(r = write(fd,0xffffe000,4096) ). The write on this machine is
successful. But if I try to write the same segment on 32-bit machine
(uname --all == Linux host 2.6.5-7.97-smp #1 <timestamp> i686 i686
i386 GNU/Linux).

The write on this 32-bit machine fails with EFAULT(14), but if memcpy
to a buffer from this virtual address seems to work fine i.e if I do
'memcpy(buf1,0xffffe000,4096)' it write perfectly the contents of this
virtual address segment into the buf1.

I had a hard time googling about this I could'nt find any information
on why this happens. May be some mm hackers may share some of their

Really appreciate your inputs on this.

Vamsi kundeti

PS: BTW I'am running suse distribution and will glibc will have any
effect on write behaviour ? (I though that since write is a syscall
the issue might be with the kernel the thus skipping the glibc
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-07-22 08:29    [W:0.041 / U:4.004 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site