From: Oleg Verych <olecom@flower.upol.cz> To: LKML <linux-kernel@vger.kernel.org> Cc: Rusty Russell <rusty@rustcorp.com.au>, Sam Ravnborg <sam@ravnborg.org>, Andi Kleen <ak@muc.de>, virtualization@lists.osdl.org, Andrew Morton <akpm@linux-foundation.org> Subject: Re: [q] kbuild for private asm-offsets (Re: [PATCH 6/10] lguest code: the little linux hypervisor.) Date: Tue, 13 Feb 2007 04:10:44 +0100 [thread overview] Message-ID: <20070213031044.GA17046@flower.upol.cz> (raw) In-Reply-To: <1171323696.19842.29.camel@localhost.localdomain> On Tue, Feb 13, 2007 at 10:41:36AM +1100, Rusty Russell wrote: > Always happy to explain. Thanks! [] > So, asm-offsets.c is the solution: it uses asm() statements to emit > patterns in the assembler, with the compiler computing the actual > numbers, eg: > > #define DEFINE(sym, val) \ (1) asm volatile("\n->" #sym " %0 " #val : : "i" (val)) > DEFINE(SIZEOF_FOOBAR, sizeof(foobar)); > (2) Becomes in asm-offsets.s: > ->SIZEOF_FOOBAR $10 sizeof(foobar) # > (3) This gets sed'd back into asm-offsets.h: > #define SIZEOF_FOOBAR 10 /* SIZEOF_FOOBAR # */ > > This can be included from .S files (which get passed through the > pre-processor). So, to make this parsing job clear once again, (1) is a pattern generator of (2) for sed (this is not assembler), which is making final (3) then. And this are actually C-for-asm offsets (asm-offsets.h is confusing to me). On Mon, Feb 12, 2007 at 10:41:28PM +0100, Sam Ravnborg wrote: [] > > I will glad to help providing solution maybe somewhat earlier (well, i'm > > trying to understand whole building process, if that matters). > > Basically what is requested is to move the generic parts of asm-offsets > generation from top-level Kbuild file to a generic file somewhere. > > Since this is not generic Kbuild functionality but more specific to the > kernel it should not be part of Kbuild generic files. > include/asm-generic/asm-offsets seems to be a fair place for it. Too much "generic" were used. Anyways, simply thing is, that there must be: -- hardware file(s) for Arch; -- "private" software file(s), for paravirt and such. On Mon, Feb 12, 2007 at 06:24:13PM +0100, Andi Kleen wrote: [] > The problem is trying to figure out what needs to be done to get > multiple asm-offsets.h. Proposition will follow. Kind regards. P.S. While it was fun to run kinds of offtopic operation systems in virtual machine back in 2000-2001. Now it isn't. Mainly due to yet another zoo. May be this is good for quick adoption, commercial benefit, etc. Yet thankfully to Rusty, general useful infrastructure is available now. Kudos to everyone :) ____
WARNING: multiple messages have this Message-ID (diff)
From: Oleg Verych <olecom@flower.upol.cz> To: LKML <linux-kernel@vger.kernel.org> Cc: Andi Kleen <ak@muc.de>, Andrew Morton <akpm@linux-foundation.org>, Sam Ravnborg <sam@ravnborg.org>, virtualization@lists.osdl.org Subject: Re: [q] kbuild for private asm-offsets (Re: [PATCH 6/10] lguest code: the little linux hypervisor.) Date: Tue, 13 Feb 2007 04:10:44 +0100 [thread overview] Message-ID: <20070213031044.GA17046@flower.upol.cz> (raw) In-Reply-To: <1171323696.19842.29.camel@localhost.localdomain> On Tue, Feb 13, 2007 at 10:41:36AM +1100, Rusty Russell wrote: > Always happy to explain. Thanks! [] > So, asm-offsets.c is the solution: it uses asm() statements to emit > patterns in the assembler, with the compiler computing the actual > numbers, eg: > > #define DEFINE(sym, val) \ (1) asm volatile("\n->" #sym " %0 " #val : : "i" (val)) > DEFINE(SIZEOF_FOOBAR, sizeof(foobar)); > (2) Becomes in asm-offsets.s: > ->SIZEOF_FOOBAR $10 sizeof(foobar) # > (3) This gets sed'd back into asm-offsets.h: > #define SIZEOF_FOOBAR 10 /* SIZEOF_FOOBAR # */ > > This can be included from .S files (which get passed through the > pre-processor). So, to make this parsing job clear once again, (1) is a pattern generator of (2) for sed (this is not assembler), which is making final (3) then. And this are actually C-for-asm offsets (asm-offsets.h is confusing to me). On Mon, Feb 12, 2007 at 10:41:28PM +0100, Sam Ravnborg wrote: [] > > I will glad to help providing solution maybe somewhat earlier (well, i'm > > trying to understand whole building process, if that matters). > > Basically what is requested is to move the generic parts of asm-offsets > generation from top-level Kbuild file to a generic file somewhere. > > Since this is not generic Kbuild functionality but more specific to the > kernel it should not be part of Kbuild generic files. > include/asm-generic/asm-offsets seems to be a fair place for it. Too much "generic" were used. Anyways, simply thing is, that there must be: -- hardware file(s) for Arch; -- "private" software file(s), for paravirt and such. On Mon, Feb 12, 2007 at 06:24:13PM +0100, Andi Kleen wrote: [] > The problem is trying to figure out what needs to be done to get > multiple asm-offsets.h. Proposition will follow. Kind regards. P.S. While it was fun to run kinds of offtopic operation systems in virtual machine back in 2000-2001. Now it isn't. Mainly due to yet another zoo. May be this is good for quick adoption, commercial benefit, etc. Yet thankfully to Rusty, general useful infrastructure is available now. Kudos to everyone :) ____
next prev parent reply other threads:[~2007-02-13 3:02 UTC|newest] Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-02-09 9:11 [PATCH 0/10] lguest Rusty Russell 2007-02-09 9:11 ` Rusty Russell 2007-02-09 9:14 ` [PATCH 1/10] lguest: Don't rely on last-linked fallthru when no paravirt handler Rusty Russell 2007-02-09 9:15 ` [PATCH 2/10] lguest: Export symbols for lguest as a module Rusty Russell 2007-02-09 9:32 ` Andi Kleen 2007-02-09 12:06 ` Rusty Russell 2007-02-09 13:58 ` Andi Kleen 2007-02-10 11:39 ` Rusty Russell 2007-02-09 9:17 ` [PATCH 3/10] lguest: Expose get_futex_key, get_key_refs and drop_key_refs Rusty Russell 2007-02-09 9:18 ` [PATCH 4/10] lguest: Initialize esp0 properly all the time Rusty Russell 2007-02-09 9:19 ` [PATCH 5/10] Make hvc_console.c compile on non-PowerPC Rusty Russell 2007-02-09 9:19 ` Rusty Russell 2007-02-09 9:20 ` [PATCH 6/10] lguest code: the little linux hypervisor Rusty Russell 2007-02-09 9:22 ` [PATCH 7/10] lguest: Simple lguest network driver Rusty Russell 2007-02-09 9:23 ` [PATCH 8/10] lguest: console driver Rusty Russell 2007-02-09 9:24 ` [PATCH 9/10] lguest: block driver Rusty Russell 2007-02-09 9:25 ` [PATCH 10/10] lguest: documentatation including example launcher Rusty Russell 2007-02-09 9:35 ` [PATCH 6/10] lguest code: the little linux hypervisor Andrew Morton 2007-02-09 11:00 ` Rusty Russell 2007-02-09 11:13 ` Zachary Amsden 2007-02-09 11:50 ` Andi Kleen 2007-02-09 11:54 ` Zachary Amsden 2007-02-09 11:57 ` Andi Kleen 2007-02-09 12:08 ` Zachary Amsden 2007-02-09 22:29 ` David Miller 2007-02-09 10:09 ` Andi Kleen 2007-02-09 12:39 ` Rusty Russell 2007-02-09 13:57 ` Andi Kleen 2007-02-09 15:01 ` Rusty Russell 2007-02-09 14:17 ` Sam Ravnborg 2007-02-09 15:23 ` Rusty Russell 2007-02-12 13:34 ` [q] kbuild for private asm-offsets (Re: [PATCH 6/10] lguest code: the little linux hypervisor.) Oleg Verych 2007-02-12 17:24 ` Andi Kleen 2007-02-12 21:41 ` Sam Ravnborg 2007-02-12 23:41 ` Rusty Russell 2007-02-13 3:10 ` Oleg Verych [this message] 2007-02-13 3:10 ` Oleg Verych 2007-02-16 15:55 ` [pp] kbuild: lguest with private asm-offsets (and some bloat) Oleg Verych 2007-02-16 15:59 ` [pp] kbuild: asm-offsets generalized Oleg Verych 2007-02-16 18:56 ` Sam Ravnborg 2007-02-16 21:56 ` Oleg Verych 2007-02-17 4:43 ` Rusty Russell 2007-02-17 5:33 ` Oleg Verych 2007-04-01 20:42 ` Sam Ravnborg 2007-04-01 21:08 ` Oleg Verych 2007-04-01 21:03 ` Sam Ravnborg 2007-02-09 10:55 ` [PATCH 6a/10] lguest: Config and headers Rusty Russell 2007-02-09 10:56 ` [PATCH 6b/10] lguest: the host code (lg.ko) Rusty Russell 2007-02-09 10:57 ` [PATCH 6c/10] lguest: the guest code Rusty Russell 2007-02-09 10:58 ` [PATCH 6d/10] lguest: the Makefiles Rusty Russell 2007-02-09 17:06 ` [PATCH 6c/10] lguest: the guest code Len Brown 2007-02-09 17:14 ` James Morris 2007-02-09 17:49 ` Len Brown 2007-02-09 23:48 ` [PATCH 11/10] lguest: use disable_acpi() Rusty Russell 2007-02-09 9:31 ` [PATCH 1/10] lguest: Don't rely on last-linked fallthru when no paravirt handler Andi Kleen 2007-02-09 11:52 ` Rusty Russell 2007-02-09 20:49 ` Jeremy Fitzhardinge
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20070213031044.GA17046@flower.upol.cz \ --to=olecom@flower.upol.cz \ --cc=ak@muc.de \ --cc=akpm@linux-foundation.org \ --cc=linux-kernel@vger.kernel.org \ --cc=rusty@rustcorp.com.au \ --cc=sam@ravnborg.org \ --cc=virtualization@lists.osdl.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.