|
|
|
|
|
|
|
|
|
|
xen-bugs
[Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=743
------- Comment #19 from andrew.warfield@xxxxxxxxxxxx 2006-08-29 10:53 -------
Subject: Re: Unable to start more than a few domU's on RHEL4 amd64 (Error:
Backend device not found)
Good catch, looks like you are actually failing on the system-wide
limit test further down in ioctx_alloc:
/* limit the number of system wide aios */
spin_lock(&aio_nr_lock);
if (aio_nr + ctx->max_reqs > aio_max_nr ||
aio_nr + ctx->max_reqs < aio_nr)
ctx->max_reqs = 0;
else
aio_nr += ctx->max_reqs;
spin_unlock(&aio_nr_lock);
if (ctx->max_reqs == 0)
goto out_cleanup;
...out_cleanup also returns -EAGAIN. This seems like a bit of a
weakness in aio -- one process can pretty easily deny service to
others with this limit. As an interim fix, try:
echo 1048576 > /proc/sys/fs/aio-max-nr
which should let you use 60 disks. I'll look into a better solution. ;)
a.
On 8/29/06, bugzilla-daemon@xxxxxxxxxxxxxxxxxxx
<bugzilla-daemon@xxxxxxxxxxxxxxxxxxx> wrote:
> http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=743
>
>
>
>
>
> ------- Comment #18 from tejasvia@xxxxxxxxx 2006-08-29 10:29 -------
> io_setup() during the failure is returning -11 (EAGAIN -
> include/asm-generic/errno-base.h), and tdaio_open()#tools/drivers/block-aio.c
> is considering any non-zero return code to be non-existing support, and that
> is
> why the aio-poll support error msg appears!
>
> The man page for io_setup() indicates that EAGAIN is returned when "The
> specified nr_events exceeds the user's limit of available events"
>
> Digging into the kernel code (havent instrumented it, yet), it appears that
> ioctx_alloc is failing with EAGAIN (going by the reason mentioned on the
> manpage for EAGAIN)
>
> sys_io_setup(..) #fs/aio.c
> {
>
> ioctx = ioctx_alloc(nr_events);
> ret = PTR_ERR(ioctx);
> if (!IS_ERR(ioctx)) {
> ret = put_user(ioctx->user_id, ctxp);
> ...
>
> }
>
> kioctx *ioctx_alloc(unsigned nr_events) #fs/aio.c
> {
> ....
> ...
> if ((unsigned long)nr_events > aio_max_nr)
> return ERR_PTR(-EAGAIN);
> ...
>
> }
>
> &&
>
> unsigned long aio_max_nr = 0x10000; /* system wide maximum number of aio
> requests */
>
> unless it is changed elsewhere.
>
> and in the user space tool,
>
> tdaio_open() #tools/blktap/drivers/block-aio.c
> {
> ...
>
> prv->aio_ctx = (io_context_t) REQUEST_ASYNC_FD;
> prv->poll_fd = io_setup(MAX_AIO_REQS, &prv->aio_ctx);
>
> if (prv->poll_fd < 0) {
> ret = prv->poll_fd;
> DPRINTF("Couldn't get fd for AIO poll support. This is "
> "probably because your kernel does not have the "
> "aio-poll patch applied.\n");
> goto done;
> }
> ...
> ...
> }
>
> #define MAX_AIO_REQS (MAX_REQUESTS * MAX_SEGMENTS_PER_REQ * 8)
>
> == 64*11*8 = 5632 (0x1600)
>
> and in my case REQUEST_AYSNC_FD == 1 (block-aio)
>
>
> --
> Configure bugmail:
> http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
>
--
Configure bugmail:
http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
_______________________________________________
Xen-bugs mailing list
Xen-bugs@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-bugs
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), (continued)
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found),
bugzilla-daemon <=
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
- [Xen-bugs] [Bug 743] Unable to start more than a few domU's on RHEL4 amd64 (Error: Backend device not found), bugzilla-daemon
|
|
|
|
|