| To: | "Paul Mackerras" <paulus@xxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH 1/5] fallocate() implementation in i86, x86_64 and powerpc |
| From: | "Martin Schwidefsky" <schwidefsky@xxxxxxxxxxxxxx> |
| Date: | Wed, 9 May 2007 14:00:19 +0200 |
| Cc: | suparna@xxxxxxxxxx, "Andrew Morton" <akpm@xxxxxxxxxxxxxxxxxxxx>, "Amit K. Arora" <aarora@xxxxxxxxxxxxxxxxxx>, torvalds@xxxxxxxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, cmm@xxxxxxxxxx |
| Dkim-signature: | a=rsa-sha1; c=relaxed/relaxed; d=googlemail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=k82pNmCQG6xCtzvBGnA0DcnHTp3uogf8iXrFeu2ESrspAtjyuI5di7SXd8oVHD6YcfovSY0Cy+TEdHl51eX07BRjau7AZKfFVGpw9W7y77qimQUhMP2b/y1TXK/aAK9hiIz5EQqGaVAtcfl0erlPsKGkeEkzwi/ajHMuLybLOzI= |
| Domainkey-signature: | a=rsa-sha1; c=nofws; d=googlemail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=a2VKPe4iK52E4mrndjj8ctLhkaJWneH5H3bKROdSv/dILYa6Il+YpwSYwjgNWXo8yMpsqv9m3mzVE7dcB55H+bm9QEqow1Aef2PRwGza9eo0XyC6lQL4WYeeflCjtZmrSVaXpmc66I5a2fCoiSavV49zRM9eb4UXNL4BTd/DSFs= |
| In-reply-to: | <17985.45682.284634.969153@xxxxxxxxxxxxxxxxxxxx> |
| References: | <20070418130600.GW5967@xxxxxxxxxxxxxxxxxxxx> <20070424121632.GA10136@xxxxxxxxxxxxxxxxxxxx> <20070426175056.GA25321@xxxxxxxxxxxxxxxxxxxx> <20070426180332.GA7209@xxxxxxxxxxxxxxxxxxxx> <20070503212955.b1b6443c.akpm@xxxxxxxxxxxxxxxxxxxx> <17978.47502.786970.196554@xxxxxxxxxxxxxxxxxxxx> <20070509101507.GA26056@xxxxxxxxxx> <17985.42884.971318.859402@xxxxxxxxxxxxxxxxxxxx> <20070509111011.GA21619@xxxxxxxxxx> <17985.45682.284634.969153@xxxxxxxxxxxxxxxxxxxx> |
| Sender: | xfs-bounce@xxxxxxxxxxx |
On 5/9/07, Paul Mackerras <paulus@xxxxxxxxx> wrote: Suparna Bhattacharya writes: > > Of course the interface used by an application program would have the > > fd first. Glibc can do the translation. > > I think that was understood. OK, then what does it matter what the glibc/kernel interface is, as long as it works? It's only a minor point; the order of arguments can vary between architectures if necessary, but it's nicer if they don't have to. 32-bit powerpc will need to have the two int arguments adjacent in order to avoid using more than 6 argument registers at the user/kernel boundary, and s390 will need to avoid having a 64-bit argument last (if I understand it correctly). Ah, almost but not quite the point. But I admit it is hard to understand.. The trouble started with the futex call which has been the first system call with 6 arguments. s390 supported only 5 arguments up to that point (%r2 - %r6). For futex we added a wrapper to the glibc that loaded the 6th argument to %r7. In entry.S we set up things so that %r7 gets stored to the kernel stack where normal C code expects the first overflow argument. This enabled us to use the standard futex system call with 6 arguments. fallocate now has an additional problem: the last argument is a 64 bit integers AND registers %r2-%r5 are already used. In this case the 64 bit number would have to be split into the high part in %r6 and the low part on the stack so that the glibc wrapper can load the low part to %r7. But the C compiler will skip %r6 and store the 64 bit number on the stack. If the order of the arguments if modified so that %r6 is assigned to a 32-bit argument, then the entry.S magic with %r7 would work. -- blue skies, Martin |
| Previous by Date: | Re: [PATCH 1/5] fallocate() implementation in i86, x86_64 and powerpc, Amit K. Arora |
|---|---|
| Next by Date: | Re: [PATCH 1/5] fallocate() implementation in i86, x86_64 and powerpc, Amit K. Arora |
| Previous by Thread: | Re: [PATCH 1/5] fallocate() implementation in i86, x86_64 and powerpc, Amit K. Arora |
| Next by Thread: | Re: [PATCH 1/5] fallocate() implementation in i86, x86_64 and powerpc, David Chinner |
| Indexes: | [Date] [Thread] [Top] [All Lists] |