Re: [PATCH v3 1/9] syscalls: Add epoll_create03

Petr Vorel <[email protected]>
Newsgroups gmane.linux.ltp
Message-ID <20260709145629.GA997675@pevik>
> Hi!
> > > +static void setup(void)
> > > +{
> > > +	int fd;
> > > +
> > > +	variant_info();
> > > +
> > > +	maxfds = SAFE_SYSCONF(_SC_OPEN_MAX);
> > > +	fds = SAFE_MALLOC(maxfds * sizeof(int));
> > > +	memset(fds, -1, maxfds * sizeof(int));
> > > +
> > > +	fds[0] = SAFE_OPEN("dummy", O_RDWR | O_CREAT, 0700);
> > > +	nfds = 1;
> > > +
> > > +	for (int i = 1; i < maxfds; i++) {
> > > +		fd = dup(fds[0]);
> > > +		if (fd == -1)
> > > +			break;
> > > +		fds[nfds++] = fd;
> > > +	}

> > How many files are created is done via `ulimit -n`, right? (not sure if there
> > is file for it in /proc/sys).

> It's not about created files. There is a per-process limit on the number
> of file descriptors. That can be accessed either via sysconf() or via
> rlimit() and the values are also exported into /proc/$PID/limits.

> > Would it be worth we check that? Or at least check that at least 2 files were
> > opened? Maybe this check should be rather put into dup03.c.

> I guess that it would make more sense to put such check into dup03.c.

OK, let's ignore it.

> However we would have to scan the whole file descriptor table first to
> check on how many fds are already open.

> Something as;

> 	int used_fds = 0;

> 	for (i = 0; i < maxfds; i++) {
> 		if (fcntl(i, F_GETFD) != -1)
> 			used_fds++;
> 	}

> Then we can expect that the limit for the test is maxfds - used_fd

+1

I'll try to add it either into my TODO list or to the issues.

Kind regards,
Petr

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.