All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Tokarev <mjt@tls.msk.ru>
To: famz@redhat.com
Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org,
	stefanha@redhat.com, pbonzini@redhat.com, vilanova@ac.upc.edu,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH v6 4/8] module: implement module loading function
Date: Thu, 12 Sep 2013 09:36:43 +0400	[thread overview]
Message-ID: <523152EB.5010505@msgid.tls.msk.ru> (raw)
In-Reply-To: <20130912030232.GK9134@T430s.nay.redhat.com>

12.09.2013 07:02, Fam Zheng wrote.
> On Wed, 09/11 11:46, Richard Henderson wrote:
>> On 09/11/2013 08:48 AM, Daniel P. Berrange wrote:
>>> We know the precise list of valid modules when building QEMU,
>>> so IMHO, this should just explicitly load each known module
>>> name, and *not* readdir. Also it should do something along the
>>> lines suggested their of poisoning exported symbols with a
>>> build hash to guarantee the modules loaded match the original
>>> binary and that the symbols change on every rebuild.
>>
>> We need not mangle the symbols, which could be complicated to
>> actually implement, and irritating to work around within gdb.
>>
> Agree with this, some id or hash check should be enough.

A solution which I proposed at the very beginning -- to export
a "hashed" init function from modules, and call it from the
main executable.  Like, instead of, say, qemu_module_init(),
call qemu_module_init_0xdeadbeaf(), where 0xdeadbeaf is a
hash of some build-dependent value.  This should be enough
to keep it going.

Ofcourse, if a module lacks this function, it should not be
loaded.

Thanks,

/mjt

  reply	other threads:[~2013-09-12  5:37 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-11 13:34 [Qemu-devel] [PATCH v6 0/8] Shared Library Module Support Fam Zheng
2013-09-11 13:34 ` [Qemu-devel] [PATCH v6 1/8] make.rule: fix $(obj) to a real relative path Fam Zheng
2013-09-11 13:41   ` Paolo Bonzini
2013-09-12  2:32     ` Fam Zheng
2013-09-11 14:59   ` Daniel P. Berrange
2013-09-12  1:57     ` Fam Zheng
2013-09-12  2:22     ` Fam Zheng
2013-09-11 16:38   ` Peter Maydell
2013-09-11 16:40     ` Paolo Bonzini
2013-09-11 16:43       ` Peter Maydell
2013-09-11 13:34 ` [Qemu-devel] [PATCH v6 2/8] rule.mak: allow per object cflags and libs Fam Zheng
2013-09-11 13:43   ` Paolo Bonzini
2013-09-12  2:52     ` Fam Zheng
2013-09-12  6:34       ` Paolo Bonzini
2013-09-12  7:12         ` Fam Zheng
2013-09-11 13:34 ` [Qemu-devel] [PATCH v6 3/8] Makefile: introduce common-obj-m and block-obj-m for DSO Fam Zheng
2013-09-11 20:01   ` Peter Maydell
2013-09-12  2:48     ` Fam Zheng
2013-09-12  2:50   ` Fam Zheng
2013-09-11 13:34 ` [Qemu-devel] [PATCH v6 4/8] module: implement module loading function Fam Zheng
2013-09-11 15:48   ` Daniel P. Berrange
2013-09-11 18:33     ` Alex Bligh
2013-09-11 18:46     ` Richard Henderson
2013-09-12  3:02       ` Fam Zheng
2013-09-12  5:36         ` Michael Tokarev [this message]
2013-09-12  9:13           ` Daniel P. Berrange
2013-09-12 11:59           ` Eric Blake
2013-09-12 12:44             ` Daniel P. Berrange
2013-09-11 13:34 ` [Qemu-devel] [PATCH v6 5/8] configure: introduce --enable-modules Fam Zheng
2013-09-11 13:46   ` Paolo Bonzini
2013-09-12  2:06     ` Fam Zheng
2013-09-11 13:34 ` [Qemu-devel] [PATCH v6 6/8] Makefile: install modules with "make install" Fam Zheng
2013-09-11 13:50   ` Paolo Bonzini
2013-09-12  2:00     ` Fam Zheng
2013-09-11 13:34 ` [Qemu-devel] [PATCH v6 7/8] .gitignore: ignore module related files (dll, so, mo) Fam Zheng
2013-09-11 13:34 ` [Qemu-devel] [PATCH v6 8/8] block: convert block drivers linked with libs to modules Fam Zheng
2013-09-11 15:41   ` Daniel P. Berrange
2013-09-12  2:07     ` Fam Zheng
2013-09-11 16:26 ` [Qemu-devel] [PATCH v6 0/8] Shared Library Module Support Peter Maydell
2013-09-12  3:08   ` Fam Zheng

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=523152EB.5010505@msgid.tls.msk.ru \
    --to=mjt@tls.msk.ru \
    --cc=famz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=stefanha@redhat.com \
    --cc=vilanova@ac.upc.edu \
    /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: link
Be 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.