From owner-freebsd-hackers Wed Jul 28 20:39: 5 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from celery.dragondata.com (celery.dragondata.com [205.253.12.6]) by hub.freebsd.org (Postfix) with ESMTP id D0CA314CBF for ; Wed, 28 Jul 1999 20:39:02 -0700 (PDT) (envelope-from toasty@celery.dragondata.com) Received: (from toasty@localhost) by celery.dragondata.com (8.9.3/8.9.3) id WAA95155; Wed, 28 Jul 1999 22:39:11 -0500 (CDT) (envelope-from toasty) From: Kevin Day Message-Id: <199907290339.WAA95155@celery.dragondata.com> Subject: Re: Replace/rewrite reverse.c for tail(1) In-Reply-To: <64003B21ECCAD11185C500805F31EC030378660F@houston.matchlogic.com> from Charles Randall at "Jul 28, 1999 09:27:28 am" To: crandall@matchlogic.com (Charles Randall) Date: Wed, 28 Jul 1999 22:39:11 -0500 (CDT) Cc: hackers@FreeBSD.ORG, toasty@dragondata.com (Kevin Day) X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Because of licensing restrictions in our product, we are unable to ship with any GNU/GPL'ed tools, so I'm forced to fix 'tail' rather than use tac. (I saw tac, and agree that it is faster for this specific use) Any VM people wanna pipe up and make a suggestion so that I may make up a patch? Kevin [Charset iso-8859-1 unsupported, filtering to ASCII...] > I'd suggest that you use "tac" from GNU textutils. > > Charles > > -----Original Message----- > From: Kevin Day [mailto:toasty@dragondata.com] > Sent: Wednesday, July 28, 1999 3:09 AM > To: hackers@freebsd.org > Subject: Replace/rewrite reverse.c for tail(1) > > An application I use quite often requires me to reverse the lines in the > file to get the desired output. > > 'tail -r' appears to be very inefficient in it's use of mmap(). It mmap's > the entire file in, which encourages the kernel to swap out the rest of the > system to keep pages of the input file in memory. > > 58350 root 54 0 412M 85244K RUN 0:14 19.78% 19.19% tail > > Out of 128M of ram, it's swapped nearly everything else out to keep 85M of > this 400M file in ram, even though it will never touch it again. :) > > I see two possible fixes for this. One could be madvise'ing periodically > with MADV_DONTNEED. If I understand correctly, this would help a bit, right? > > Or, mmap smaller regions of the file, and keep moving the buffer. This would > also help with files exceeding mmap's limits. > > > Any thoughts? > > > Kevin > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message