From: "Mitani" <mitani@ryobi.co.jp>
To: 'Garrett Cooper' <yanegomi@gmail.com>
Cc: ltp-list@lists.sourceforge.net
Subject: Re: [LTP] About "hugeshmat01" and "humeshmget03" testsets
Date: Wed, 13 Oct 2010 18:47:35 +0900 [thread overview]
Message-ID: <000301cb6abb$aa9e22b0$ffda6810$@co.jp> (raw)
In-Reply-To: <AANLkTimt2JrCSJ5BBnL9JhF5OC+yor8KA2dGy+RVjK==@mail.gmail.com>
> -----Original Message-----
> From: Garrett Cooper [mailto:yanegomi@gmail.com]
> Sent: Wednesday, October 13, 2010 5:26 AM
> To: Mitani
> Cc: ltp-list@lists.sourceforge.net
> Subject: Re: [LTP] About "hugeshmat01" and "humeshmget03" testsets
>
> On Tue, Oct 5, 2010 at 8:26 PM, Mitani <mitani@ryobi.co.jp> wrote:
> >> -----Original Message-----
> >> From: Garrett Cooper [mailto:yanegomi@gmail.com]
> >> Sent: Sunday, October 03, 2010 10:02 AM
> >> To: Mitani
> >> Cc: ltp-list@lists.sourceforge.net
> >> Subject: Re: [LTP] About "hugeshmat01" and "humeshmget03" testsets
> >>
> >> On Tue, Sep 28, 2010 at 9:40 PM, Mitani <mitani@ryobi.co.jp> wrote:
> >> >> -----Original Message-----
> >> >> From: Garrett Cooper [mailto:yanegomi@gmail.com]
> >> >> Sent: Tuesday, September 07, 2010 4:04 PM
> >> >> To: Mitani
> >> >> Cc: ltp-list@lists.sourceforge.net
> >> >> Subject: Re: [LTP] About "hugeshmat01" and "humeshmget03"
> testsets
> >> >>
> >> >> On Mon, Sep 6, 2010 at 11:53 PM, Mitani <mitani@ryobi.co.jp>
> wrote:
> >> >> > Hi,
> >> >> >
> >> >> > I sent patches of "hugeshmat01" and "humeshmget03" testsets
> to
> >> >> mailing-list
> >> >> > in the middle of August, but they aren't updated.
> >> >> > Would you teach me what kind of situation they are?
> >> >> >
> >> >> > hugeshmat01:
> >> >>
> >>
> > http://www.mail-archive.com/ltp-list@lists.sourceforge.net/m
> >> >> sg10448.html
> >> >> > humeshmget03:
> >> >>
> >>
> > http://www.mail-archive.com/ltp-list@lists.sourceforge.net/m
> >> >> sg10467.html
> >> >> >
> >> >> > (The "humeshmat01" was revised on August 16, but same failure
> >> has
> >> >> > occurred in my system.)
> >> >> >
> >> >> > I am glad if I can get some information about the patch.
> >> >> > I'm looking forward to reply:-)
> >> >>
> >> >> Sorry... another item I forgot to follow up on. I'll look
> into
> >> >> this over the next couple of days and provide feedback about this.
> >> >> Thanks,
> >> >> -Garrett
> >> >
> >> > Were my revisions OK?
> >> > I am glad if you consider about these patches when you are free.
> >>
> >> 1. Where's the requirement noted that you added the code for in
> >> hugeshmget03 ?
> >> 2. How do you know the value added to hugeshmat01 isn't page aligned?
> >> Why not get the page size from sysconf and subtract the value from
> >> one, and add _that_ value?
> >>
> >> Thanks,
> >> -Garrett
> >
> >
> >>1. Where's the requirement noted that you added the code for in
> > hugeshmget03 ?
> >
> > It is in follwing URL in August 13:
> > http://www.mail-archive.com/ltp-list@lists.sourceforge.net/msg
> 10467.html
> >
> >
> >>2. How do you know the value added to hugeshmat01 isn't page aligned?
> >
> > It is in follwing URL in August 09:
> > http://www.mail-archive.com/ltp-list@lists.sourceforge.net/msg
> 10448.html
> > http://www.mail-archive.com/ltp-list@lists.sourceforge.net/msg
> 10532.html
> >
> > The reason that hugeshmat01 isn't page aligned is from the shmat()'s
> > error code 22 (EINVAL).
> > shmat()'s man page says about this error code:
> > ------------
> > EINVAL The value of shmid is not a valid shared memory
> identifier,
> > the shmaddr
> > is not a null pointer, and the value of
> (shmaddr
> > -((uintptr_t)shmaddr
> > %SHMLBA)) is an illegal
> address for attaching shared
> > memory; or the
> > shmaddr is not a null pointer, (shmflg &SHM_RND)
> is 0, and
> > the value of
> > shmaddr is an illegal address for attaching shared
> memory.
> > ------------
> >
> > The failure occurred in following shmat():
> > ---(hugeshmat01.c)---------
> > [...]
> > for (i=0; i<TST_TOTAL; i++) {
> >
> > /*
> > * Use TEST macro to make the call
> > */
> > errno = 0;
> > addr = shmat(*(TC[i].shmid), (void
> *)(TC[i].addr),
> > TC[i].flags);
> > [...]
> > ------------
> >
> > This failure occurred in second loop (i=1), and arguments of shmat()
> > are as follows:
> > ------------
> > shmat(id, 0x10000000eee, SHM_RND)
> > ------------
> >
> > "shmaddr" argument (second argument) of shmat() is not NULL.
> Therefore
> > I thought that page aligned occurred.
> >
> >
> >>Why not get the page size from sysconf and subtract the value from
> one, and
> > add _that_ value?
> >
> > This value is dynamic address, and this is the value which the first
> shmat()
> > returned.
> > This is the value with achievement in the each users system at least.
> > When a fixed address ("0x10000000eee" or "0x60000eee") was
> specified,
> > depending on a case, this address may be the address which other
> processes
> > use.
> > I thought that this method of using dynamic address is better than
> > using fixed value to "shmaddr" argument.
>
> If you have links to official documentation from your copy of
> RHEL's kernel / glibc sources I could reference, that would be much
> appreciated.
> Thanks,
> -Garrett
I referred "man" command in my system (RHEL4.8 x86_64).
------------
# man shmat
SHMAT(P)
SHMAT(P)
NAME
SHMAT(P)
SHMAT(P)
NAME
shmat - XSI shared memory attach operation
SYNOPSIS
#include <sys/shm.h>
void *shmat(int shmid, const void *shmaddr, int shmflg);
DESCRIPTION
The shmat() function operates on XSI shared memory (see the Base
Definitions
volume of IEEE Std 1003.1-2001, Section 3.340, Shared Memory
Object). It is
unspecified whether this function interoperates with the realtime
interprocess
communication facilities defined in Realtime .
The shmat() function attaches the shared memory segment associated
with the
shared memory identifier specified by shmid to the address space of
the calling
process. The segment is attached at the address specified by one of
the follow-
ing criteria:
# * If shmaddr is a null pointer, the segment is attached at the
first available
# address as selected by the system.
> * If shmaddr is not a null pointer and (shmflg &SHM_RND) is
non-zero, the seg-
> ment is attached at the address given by (shmaddr
-((uintptr_t)shmaddr
> %SHMLBA)). The character '%' is the C-language remainder
operator.
* If shmaddr is not a null pointer and (shmflg &SHM_RND) is 0, the
segment is
attached at the address given by shmaddr.
* The segment is attached for reading if (shmflg &SHM_RDONLY) is
non-zero and
the calling process has read permission; otherwise, if it is 0 and
the call-
ing process has read and write permission, the segment is
attached for read-
ing and writing.
<...>
ERRORS
The shmat() function shall fail if:
EACCES Operation permission is denied to the calling process; see
XSI Interpro-
cess Communication .
% EINVAL The value of shmid is not a valid shared memory identifier,
the shmaddr
% is not a null pointer, and the value of (shmaddr
-((uintptr_t)shmaddr
% %SHMLBA)) is an illegal address for attaching shared
memory; or the
% shmaddr is not a null pointer, (shmflg &SHM_RND) is 0, and
the value of
% shmaddr is an illegal address for attaching shared memory.
EMFILE The number of shared memory segments attached to the
calling process
would exceed the system-imposed limit.
ENOMEM The available data space is not large enough to accommodate
the shared
memory segment.
The following sections are informative.
<...>
------------
hugeshmat01's first test has similar with above situation marked by "#".
hugeshmat01's second test has similar with above situation marked by ">".
hugeshmat01's second test calls "shmat(id, 0x10000000eee, SHM_RND)".
But it failed with EINVAL. This is the above situation marked by "%".
Therefore I think "0x10000000eee" is not suitable fot this test.
Other documents look like above manual page.
http://linux.die.net/man/2/shmat
http://linux.about.com/library/cmd/blcmdl2_shmat.htm
Regards--
-Tomonori Mitani
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next prev parent reply other threads:[~2010-10-13 9:47 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-07 6:53 [LTP] About "hugeshmat01" and "humeshmget03" testsets Mitani
2010-09-07 7:04 ` Garrett Cooper
2010-09-29 4:40 ` Mitani
2010-10-03 1:02 ` Garrett Cooper
2010-10-06 3:26 ` Mitani
2010-10-12 20:25 ` Garrett Cooper
2010-10-13 9:47 ` Mitani [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-12-08 1:37 Mitani
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='000301cb6abb$aa9e22b0$ffda6810$@co.jp' \
--to=mitani@ryobi.co.jp \
--cc=ltp-list@lists.sourceforge.net \
--cc=yanegomi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox