All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Wood <scottwood@freescale.com>
To: Alexander Graf <agraf@suse.de>
Cc: Maurizio Caloro <mauric@gmx.ch>,
	qemu-devel@nongnu.org, Brad Smith <brad@comstyle.com>
Subject: Re: [Qemu-devel] Help - `flush_icache_range' MacPPC
Date: Wed, 8 Feb 2012 17:29:57 -0600	[thread overview]
Message-ID: <4F330575.1020407@freescale.com> (raw)
In-Reply-To: <DA9F2E38-0A29-4ADE-933E-81692C2E42A9@suse.de>

On 02/07/2012 04:57 PM, Alexander Graf wrote:
> 
> On 07.02.2012, at 23:29, Brad Smith wrote:
> 
>> On 07/02/12 5:12 PM, malc wrote:
>>> On Tue, 7 Feb 2012, Alexander Graf wrote:
>>>
>>>>
>>>> On 07.02.2012, at 22:12, malc wrote:
>>>>
>>>>> On Tue, 7 Feb 2012, Alexander Graf wrote:
>>>>>
>>>>>>
>>>>>> On 07.02.2012, at 13:52, Maurizio Caloro wrote:
>>>>>>
>>>>>>> Hello Together
>>>>>>> Here i drive with me MiniMac G4 1.4Ghz and i try to run Qemu 1.0. i wan't run one Virt. MS Server2008 it's this realistic?.
>>>>>>>
>>>>>>> Unfortunitly from the first (other) Mailinglist i don't become any Answer.
>>>>>>>
>>>>>>> on a possible error recovery support, I would grateful to you.
>>>>>>> Thanks and best regards
>>>>>>> Mauri
>>>>>>>
>>>>>>>> NetBSD powermac.G4 5.1 NetBSD 5.1 (GENERIC) #0: Sat Nov  6 17:09:11 UTC>2010  builds@b7.netbsd.org:/home/builds/ab/netbsd-5-1->RELEASE/macppc/201011061943Z-obj/home/builds/ab/netbsd-5-1->RELEASE/src/sys/arch/macppc/compile/GENERIC macppc
>>>>>>>>
>>>>>>>> # gmake
>>>>>>>> CC    i386-softmmu/memory.o
>>>>>>>> LINK  i386-softmmu/qemu-system-i386
>>>>>>>> ld: warning: libintl.so.0, needed by /usr/pkg/lib/libgthread-2.0.so, may conflict with libintl.so.8
>>>>>>>> tcg/tcg.o: In function `tcg_prologue_init':
>>>>>>>> /usr/source/qemu-1.0/tcg/tcg.c:268: undefined reference to `flush_icache_range'
>>>>>>>> tcg/tcg.o: In function `ppc_tb_set_jmp_target':
>>>>>>>> /usr/source/qemu-1.0/tcg/ppc/tcg-target.c:1291: undefined reference to `flush_icache_range'
>>>>>>>> tcg/tcg.o: In function `tcg_gen_code':
>>>>>>>> /usr/source/qemu-1.0/tcg/tcg.c:2191: undefined reference to `flush_icache_range'
>>>>>>
>>>>>> I'd say your gcc is too old / buggy.
>>>>>
>>>>> You probably missed the NetBSD part (anyway originally i did)
>>>>
>>>> Gcc on NetBSD doesn't implement the cache flush helpers? They're just a
>>>> bunch of instructions, so I don't see how that'd be target os specific.
>>>>
>>>
>>> Take a look at cache-utils.c, it conditionally (depending on the host OS
>>> type) tries to gigure out the cache line sizes, there's code to do that
>>> on Linux, OSX, AIX and FreeBSD. I have no idea if FreeBSD method works
>>> for Net/Open/Dragonfly.. so..
>>
>> The FreeBSD method will not work with NetBSD. For NetBSD you have to use
>> the machdep.cacheinfo sysctl MIB. For OpenBSD this is the only local patch
>> we have since there is no sysctl (yet) to retrieve the cache line size.
>> DragonFly has no PowerPC support.
> 
> Eh, this patch:
> 
> diff --git a/tcg/ppc/tcg-target.c b/tcg/ppc/tcg-target.c
> index f5d9bf3..f9793e6 100644
> --- a/tcg/ppc/tcg-target.c
> +++ b/tcg/ppc/tcg-target.c
> @@ -1260,6 +1260,17 @@ static void tcg_out_brcond2 (TCGContext *s, const TCGArg *args,
>      tcg_out_bc (s, (BC | BI (7, CR_EQ) | BO_COND_TRUE), args[5]);
>  }
>  
> +#ifdef __NetBSD__
> +static void flush_icache_range(unsigned long begin, unsigned long end)
> +{
> +    unsigned int i = begin & ~15UL;
> +    for (; i < end; i+=16) {
> +        asm("icbi 0,%0" : : "r"(i));
> +    }
> +    asm("isync");
> +}
> +#endif

What about flushing the data cache first, as the other
flush_icache_range does?

Why isn't the cache-utils.h version of flush_icache_range being seen?
It's only ppc_init_cacheline_sizes() that is OS-conditional -- shouldn't
that be what the undefined reference is for?  Is _ARCH_PPC failing to be
defined?

-Scott

  parent reply	other threads:[~2012-02-08 23:30 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-07 12:52 [Qemu-devel] Help - `flush_icache_range' MacPPC Maurizio Caloro
2012-02-07 18:03 ` malc
2012-02-07 20:01 ` Alexander Graf
2012-02-07 21:12   ` malc
2012-02-07 22:05     ` Alexander Graf
2012-02-07 22:12       ` malc
2012-02-07 22:22         ` Alexander Graf
2012-02-07 22:29         ` Brad Smith
2012-02-07 22:33           ` Alexander Graf
2012-02-07 22:56           ` Alexander Graf
2012-02-07 22:57           ` Alexander Graf
2012-02-07 23:57             ` Maurizio Caloro
2012-02-08 23:29             ` Scott Wood [this message]
2012-02-08 23:42               ` Alexander Graf
2012-02-08 23:54                 ` Scott Wood
2012-02-08 23:58                   ` Alexander Graf

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=4F330575.1020407@freescale.com \
    --to=scottwood@freescale.com \
    --cc=agraf@suse.de \
    --cc=brad@comstyle.com \
    --cc=mauric@gmx.ch \
    --cc=qemu-devel@nongnu.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: 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.