mmap returning MAP_FAILED

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
I am running Linux 2.6.26 on an MPC8248.   In my application, mmap is
returning MAP_FAILED.  The arguments to mmap are start = 0, length =
2680, prot = 3, flags = MAP_SHARED, fd = 5, offset = 0.  errno = 22
"Invalid argument"

I looked at the man page for mmap and don't see a reason why this is
happening.  Any ideas?

Re: mmap returning MAP_FAILED
Quoted text here. Click to load it

It would help if you told us what you were trying to do. What is file
descriptor 5 and how was it opened? Also, I doubt '2680' is a multiple
of your page size, so you cannot create a 2,680-byte mapping.

DS

Re: mmap returning MAP_FAILED
Quoted text here. Click to load it


I am trying to get oprofile to work.  The file I am opening is a
sample file.  Here is the code for the open:

data->fd 3D% open(filename, flags, 0644);

where filename 3D% "/var/lib/oprofile/samples//current//no-vmlinux/
//no-vmlinux/TIMER.0.0.all.all.all"
where flags 3D% O_CREAT | O_RDWR

The file  /var/lib/oprofile/samples//current//no-vmlinux//
/no-vmlinux/TIMER.0.0.all.all.all does exist.

I changed the length to the page size and it made no difference.
According to http://www.ecst.csuchico.edu/~beej/guide/ipc/mmap.html ,
"This can be any length you want. (Aside: if len not a multiple of the
virtual memory page size, you will get a blocksize that is rounded up
to that size. The extra bytes will be 0, and any changes you make to
them will not modify the file.) "


Re: mmap returning MAP_FAILED

Quoted text here. Click to load it

What exactly do you think mapping a zero-length file would do?

DS

Re: mmap returning MAP_FAILED

Quoted text here. Click to load it

Make sure you are not logging data to a JFFS2 file system.  JFFS2 does
not support MMAP.

Cliff

Re: mmap returning MAP_FAILED
Quoted text here. Click to load it

prot3D%3 3D%> would mean PROT_READ|PROT_WRITE

MAP_SHARED I think is a invalid mode if you are trying to map it that
way, Probably you may want to remove PROT_WRITE and see whats
happening.

Thanks

Shankar Easwaran

Re: mmap returning MAP_FAILED

Quoted text here. Click to load it

That would do terrible things to the utility of shared memory -- no,
MAP_SHARED and PROT_WRITE are compatible.  Maybe you're thinking of
MAP_SHARED and MAP_ANONYMOUS (which didn't used to be compatible, but is
since 2.4).
--
As we enjoy great advantages from the inventions of others, we should
be glad of an opportunity to serve others by any invention of ours;
We've slightly trimmed the long signature. Click to see the full one.
Re: mmap returning MAP_FAILED
Quoted text here. Click to load it
No. It is feasible.
The parameter prot determines whether read, write, execute,
or some combination of accesses are permitted to the data being
mapped.
The prot should be either PROT_NONE or the bitwise inclusive OR of
one or more of the other flags listed below -
PROT_READ  Data can be read.
PROT_WRITE  Data can be written.
PROT_EXEC  Data can be executed.
PROT_NONE  Data cannot be accessed.

Check the below links w.r.t mmap ->
http://docs.blackfin.uclinux.org/doku.php?id3D%:mmap#mmap_kernel_code_examp =
le_2
http://www.opengroup.org/onlinepubs/007908775/xsh/mmap.html

Karthik Balaguru


Karthik Balaguru

Site Timeline