From owner-freebsd-hackers Thu Sep 26 13:44:38 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 16DF137B401; Thu, 26 Sep 2002 13:44:37 -0700 (PDT) Received: from birch.ripe.net (birch.ripe.net [193.0.1.96]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1BA0F43E6A; Thu, 26 Sep 2002 13:44:36 -0700 (PDT) (envelope-from marks@ripe.net) Received: from laptop.6bone.nl (cow.ripe.net [193.0.1.239]) by birch.ripe.net (8.12.5/8.11.6) with SMTP id g8QKiY95010954; Thu, 26 Sep 2002 22:44:34 +0200 Received: (nullmailer pid 1326 invoked by uid 1000); Thu, 26 Sep 2002 20:41:31 -0000 Date: Thu, 26 Sep 2002 22:41:31 +0200 From: Mark Santcroos To: Josef Karthauser Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: vmware reads disk on non-sector boundary Message-ID: <20020926204131.GA1079@laptop.6bone.nl> References: <20020925173453.GA1347@laptop.6bone.nl> <20020925203930.GB25571@genius.tao.org.uk> <20020926084733.GA26352@spc.org> <20020926085237.GA2645@genius.tao.org.uk> <20020926185036.GB10421@genius.tao.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020926185036.GB10421@genius.tao.org.uk> User-Agent: Mutt/1.4i X-Handles: MS6-6BONE, MS18417-RIPE X-RIPE-Spam-Status: NONE ; -1128 X-RIPE-Spam-Level: Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Thu, Sep 26, 2002 at 07:50:36PM +0100, Josef Karthauser wrote: > It took a while to find, but this is the hack I was referring to: > > Take a look at /sys/compat/linux/linux_stats.c, Thanks for taking the effort for looking this up. However, the function in question - newstat_copyout - is not in 'action' here. (had set a breakpoint in ddb) It's still unclear to me what recent change broke vmware. The removal of block devices Julian referred to is not something recent, is it? I mentioned earlier to you that I am writing a linux_read system call. This will basicly work, as long as I will be able to do the following (in pseudo code): linux_read(readsize) { if (read_is_on_raw_device) readlen = (readlen % BLOCKSIZE) + BLOCKSIZE; /* or something like this plus some other mangling of the buffer */ read(readlen); } The only thing I have to find out is the check to see whether it is a read on a raw device or not. I strongly prefer to do the check in linux_read and not in the disk layer code. (It would be easier, but not cleaner) Mark -- Mark Santcroos RIPE Network Coordination Centre http://www.ripe.net/home/mark/ New Projects Group/TTM To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message