From: Will Deacon <will.deacon@arm.com>
To: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
Cc: "penberg@kernel.org" <penberg@kernel.org>,
"levinsasha928@gmail.com" <levinsasha928@gmail.com>,
"aneesh.kumar@linux.vnet.ibm.com"
<aneesh.kumar@linux.vnet.ibm.com>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH] kvmtool: virtio-9p: Convert EMFILE error at the server to ENFILE for the guest
Date: Fri, 16 Jan 2015 15:17:49 +0000 [thread overview]
Message-ID: <20150116151749.GT7091@arm.com> (raw)
In-Reply-To: <1421407810-18302-1-git-send-email-suzuki.poulose@arm.com>
On Fri, Jan 16, 2015 at 11:30:10AM +0000, Suzuki K. Poulose wrote:
> From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
>
> If an open at the 9p server(host) fails with EMFILE (Too many open files for
> the process), we should return ENFILE(too many open files in the system) to
> the guest to indicate the actual status within the guest.
>
> This was uncovered during LTP, where getdtablesize01 fails to open the maximum
> number-open-files.
>
> getdtablesize01 0 TINFO : Maximum number of files a process can have opened is 1024
> getdtablesize01 0 TINFO : Checking with the value returned by getrlimit...RLIMIT_NOFILE
> getdtablesize01 1 TPASS : got correct dtablesize, value is 1024
> getdtablesize01 0 TINFO : Checking Max num of files that can be opened by a process.Should be: RLIMIT_NOFILE - 1
> getdtablesize01 2 TFAIL : getdtablesize01.c:102: 974 != 1023
>
> For a more practial impact:
>
> # ./getdtablesize01 &
> [1] 1834
> getdtablesize01 0 TINFO : Maximum number of files a process can have opened is 1024
> getdtablesize01 0 TINFO : Checking with the value returned by getrlimit...RLIMIT_NOFILE
> getdtablesize01 1 TPASS : got correct dtablesize, value is 1024
> getdtablesize01 0 TINFO : Checking Max num of files that can be opened by a process.Should be: RLIMIT_NOFILE - 1
> getdtablesize01 2 TFAIL : getdtablesize01.c:102: 974 != 1023
> [--- Modified to sleep indefinitely, without closing the files --- ]
>
> # ls
> bash: /bin/ls: Too many open files
>
> That gives a wrong error message for the bash, when getdtablesize01 has exhausted the system
> wide limits, giving false indicators.
>
> With the fix, we get :
>
> # ls
> bash: /bin/ls: Too many open files in system
I doubt this is affecting anybody in practice, but:
Acked-by: Will Deacon <will.deacon@arm.com>
Will
> Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
> ---
> tools/kvm/virtio/9p.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/tools/kvm/virtio/9p.c b/tools/kvm/virtio/9p.c
> index 9073a1e..b24c0f2 100644
> --- a/tools/kvm/virtio/9p.c
> +++ b/tools/kvm/virtio/9p.c
> @@ -152,6 +152,10 @@ static void virtio_p9_error_reply(struct p9_dev *p9dev,
> {
> u16 tag;
>
> + /* EMFILE at server implies ENFILE for the VM */
> + if (err == EMFILE)
> + err = ENFILE;
> +
> pdu->write_offset = VIRTIO_9P_HDR_LEN;
> virtio_p9_pdu_writef(pdu, "d", err);
> *outlen = pdu->write_offset;
> --
> 1.7.9.5
>
prev parent reply other threads:[~2015-01-16 15:17 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-16 11:30 [PATCH] kvmtool: virtio-9p: Convert EMFILE error at the server to ENFILE for the guest Suzuki K. Poulose
2015-01-16 15:17 ` Will Deacon [this message]
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=20150116151749.GT7091@arm.com \
--to=will.deacon@arm.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=levinsasha928@gmail.com \
--cc=penberg@kernel.org \
--cc=suzuki.poulose@arm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.