Re: Regressions on v11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 21 Aug 2012 15:37:07 -0400, Christoffer Dall
<c.dall@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, Aug 21, 2012 at 1:49 PM, Marc Zyngier <marc.zyngier@xxxxxxx>
wrote:
>> On 21/08/12 15:24, Christoffer Dall wrote:
>>> On Tue, Aug 21, 2012 at 9:49 AM, Marc Zyngier <marc.zyngier@xxxxxxx>
>>> wrote:
>>>> On 21/08/12 12:47, Alexander Graf wrote:
>>>>> On 08/21/2012 01:39 PM, Marc Zyngier wrote:
>>>>>> On 20/08/12 21:45, Christoffer Dall wrote:
>>>>>>> On Mon, Aug 20, 2012 at 1:22 PM, Marc Zyngier
>>>>>>> <marc.zyngier@xxxxxxx> wrote:
>>>>>>>> Guys,
>>>>>>>>
>>>>>>>> I'm seeing weird regressions on v11 when running Thumb2 code:
>>>>>>>>
>>>>>>>> [  315.637769] cyclictest (3319): undefined instruction:
>>>>>>>> pc=0000a2f4
>>>>>>>> [  315.637791] Code: 4640 4649 f002 fbc4 (ed95) 7b06
>>>>>>>> [  316.216214] cyclictest (3324): undefined instruction:
>>>>>>>> pc=0000a2f4
>>>>>>>> [  316.217515] Code: 4640 4649 f002 fbc4 (ed95) 7b06
>>>>>>>> [  325.854063] cyclictest (3444): undefined instruction:
>>>>>>>> pc=0000a2f4
>>>>>>>> [  325.854076] Code: 4640 4649 f002 fbc4 (ed95) 7b06
>>>>>>>>
>>>>>>>> My previous work branch was quite solid (v10 based). Do we have a
>>>>>>>> clear
>>>>>>>> idea of what's changed in the exception handling path? Or should
I
>>>>>>>> consider doing the diff dance?
>>>>>>>>
>>>>>>>> I have the ugly feeling that we're adjusting the PC in a creative
>>>>>>>> way.
>>>>>>>>
>>>>>>> if that's the case, it's probably the kvm_skip_instr() thingy.
Which
>>>>>>> code are you running? simply a Thumb guest kernel or something in
>>>>>>> user
>>>>>>> space? If the latter, can you share?
>>>>>> This is a Thumb2 guest + userspace guest. The instruction is always
>>>>>> the
>>>>>> same VFP instruction, so it actually looks VFP related, not PC
>>>>>> adjusting
>>>>>> as I initially thought. Doing stuff on the host seems to easily
>>>>>> trigger
>>>>>> the problem on the gust.
>>>>>>
>>>>>> But there's very little difference between my two trees (at least
VFP
>>>>>> wise), hence my growing perplexity...
>>>>>>
>>>>>> I'll continue investigating.
>>>>>
>>>>> Did you maybe compile them with different config options? Like
>>>>> preemption? :)
>>>>
>>>> No, I'm quite careful to use the exact same config file. I also made
>>>> sure I was using 3.6-rc2 for both branches. I have a few additional
ARM
>>>> specific patches that I'm going to back out, so the two trees are
>>>> similar.
>>>>
>>>> Except for whatever comes from kvm/next, of course. But I can't see
>>>> anything there that would have such an weird impact.
>>>>
>>> I changed the allocation of the vfp_struct to support module
>>> loading/unloading. The vfp structs now get kmalloc'ed and memset (see
>>> init_hyp_mode). Maybe I messed something up there?
>>
>>
>> Right. Disabling debug trapping through HDCR seem to fix the issue.
This
>> doesn't make *any* sense!
>>
>> I'll try to understand this tomorrow.
> 
> do you actually see the traps when they're not disabled?

No, I don't see any trap being actually taken (I've put a panic() in
kvm_inject_undefined() to be absolutely sure).

It's like some side effect would disable VFP, and generate an UNDEF at
some random point.

        M.
-- 
Fast, cheap, reliable. Pick two.
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm


[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux