Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1729074

Re: [PATCH v11 5/6] target-arm: kvm64: handle SIGBUS signal for synchronous External Abort

From Peter Maydell <peter.maydell@linaro.org>
Newsgroups linux.kernel
Subject Re: [PATCH v11 5/6] target-arm: kvm64: handle SIGBUS signal for synchronous External Abort
Date 2017-09-08 18:30 +0200
Message-ID <unukj-YK-19@gated-at.bofh.it> (permalink)
References <unuaC-VM-21@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 8 September 2017 at 17:17, gengdongjiu <gengdongjiu@huawei.com> wrote:
>>
>> This code has all just been copied-and-pasted from target/i386/kvm.c.
>> Please instead abstract it out properly into a cpu-independent source file.
>
>
> Yes, it copied from x86.
> Do you mean abstracting this code to a common folder so that i386 and arm platform share it?

I mean it should go into a common source file (perhaps
accel/kvm/kvm-all.c).


>> What is this ??? You should never need to look up things in the cpreg arrays by fieldoffset.
>
>
> I used it to set the esr_el1's and far_el1's value, for example:
>
>   /* set ESR_EL1 */
>   ret = kvm_arm_cpreg_value(cpu, offsetof(CPUARMState, cp15.esr_el[1]));
>
>   /* set FAR_EL1 */
>   ret = kvm_arm_cpreg_value(cpu, offsetof(CPUARMState, cp15.far_el[1]));

Yes, I saw that, but I have no idea why you think that's
the right way to set register values. No other code in
QEMU does this.

> So use the added API kvm_arm_cpreg_value() to set their value.
> If not used it, do you better method to set their value?

I suggest:

>> The code for handling debug exits (software step, watchpoint,
>> etc) is probably a good place to look for how to deal with register state.

>> Any new globally-visible function prototype in a header should
>> have a doc-comment formatted documentation comment, please.
>
>
> Ok, thanks for this reminder. Do you mean I need to add comments
> for this globally-visible function, such as below:
>
> /*
>  * xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>  */
> void kvm_hwpoison_page_add(ram_addr_t ram_addr);

It should be in the doc-comment format, which begins
"/**" and has some stylization of how you list parameters
and so on. Lots of examples in the existing headers.

thanks
-- PMM

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH v11 5/6] target-arm: kvm64: handle SIGBUS signal for  synchronous External Abort gengdongjiu <gengdongjiu@huawei.com> - 2017-09-08 18:20 +0200
  Re: [PATCH v11 5/6] target-arm: kvm64: handle SIGBUS signal for  synchronous External Abort Peter Maydell <peter.maydell@linaro.org> - 2017-09-08 18:30 +0200
    答复: [PATCH v11 5/6] target-arm: kvm64: handle SIGBUS signal for synchronous External Abort gengdongjiu <gengdongjiu@huawei.com> - 2017-09-08 18:50 +0200

csiph-web