Date: Mon, 15 May 2006 16:28:12 -0700 From: Bakul Shah <bakul@bitblocks.com> To: Alexander Leidinger <Alexander@Leidinger.net> Cc: freebsd-emulation@freebsd.org Subject: Re: linux emulation file descriptor leakage -current? Message-ID: <20060515232812.F1715294B9@mail.bitblocks.com> In-Reply-To: Your message of "Mon, 15 May 2006 21:46:38 %2B0200." <20060515214638.04ade411@Magellan.Leidinger.net>
next in thread | previous in thread | raw e-mail | index | archive | help
> > Ok, I'll file a PR.
I did file a PR via send-pr but I don't see any email back.
Looks like it disappeared into thin air -- will file again.
Turns out the problem is not limited to skype or thunderbird.
I discovered that linux-firefox ate over 8800 descriptors and
linux-opera died a suspicious death (on exit it fails to
write the state of open windows if it can't get a file
descriptor and on restart it loses all the open windows) and
I had to dig some more.
The following code from linux_stats.c looked dodgy to me so I
reverted /sys/{i386/linux,compat/{linux,linprocfs}} to about
one month old state and the problem disappears. skype still
opens about 296 files but no more.
-static void
-translate_fd_major_minor(struct thread *td, int fd, struct stat *buf)
-{
- struct file *fp;
- int error;
- int major, minor;
-
- if ((error = fget(td, fd, &fp)) != 0)
- return;
- if (fp->f_vnode) {
- if (fp->f_vnode->v_type == VCHR
- || fp->f_vnode->v_type == VBLK) {
- if (fp->f_vnode->v_un.vu_cdev) {
- if (linux_driver_get_major_minor(
- fp->f_vnode->v_un.vu_cdev->si_name,
- &major, &minor) == 0) {
- buf->st_rdev = (major << 8 | minor);
- }
- }
- }
- }
- fdrop(fp, td);
-}
-
-static void
-translate_path_major_minor(struct thread *td, char *path, struct stat *buf)
-{
- struct file *fp;
- int fd;
- int temp;
-
- temp = td->td_retval[0];
- if (kern_open(td, path, UIO_SYSSPACE, O_RDONLY, 0) != 0)
- return;
- fd = td->td_retval[0];
- td->td_retval[0] = temp;
- translate_fd_major_minor(td, fd, buf);
- fget(td, fd, &fp);
- closef(fp, td);
-}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060515232812.F1715294B9>
