* [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
@ 2015-03-20 17:25 Merten Sach
2015-03-20 17:44 ` Peter Maydell
0 siblings, 1 reply; 11+ messages in thread
From: Merten Sach @ 2015-03-20 17:25 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Hi,
I'm interested in participating in this years edition of Google Summer of Code.
I the last years I did a lot of work on hypervisors. Currently I'm working with a hypervisor on ARM
for my master degree. On previous projects using x86, the ability to do a quick debugging run using
QEMU with SVM support helped me a lot. However, the ARM version of QEMU is still lacking this useful
feature.
Initially I wanted to propose the implementation of ARMv7 virtualization extensions. I know this is
not supported at the moment. Also based on the documentation I found I thought it is still untouched.
However, when I looked at git log I saw that there is some preparation to include EL2 support (LPAE,
nested paging preparation, etc).
Is there demand for a GSoC project to further ARM virtualization extension support?
I have some experience with the QEMU codebase. In my bachelor thesis I adopted QEMU (1.0 war stable
at the time) to execute guests deterministically (in particular SMP guests). However, this work was
never submitted upstream due to the different focus.
I appreciate any comments.
Best regards
Merten
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-20 17:25 [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions Merten Sach
@ 2015-03-20 17:44 ` Peter Maydell
2015-03-21 3:16 ` Sergey Fedorov
2015-03-23 11:29 ` Merten Sach
0 siblings, 2 replies; 11+ messages in thread
From: Peter Maydell @ 2015-03-20 17:44 UTC (permalink / raw)
To: Merten Sach; +Cc: Edgar E. Iglesias, QEMU Developers
On 20 March 2015 at 17:25, Merten Sach <msach@mailbox.tu-berlin.de> wrote:
> I'm interested in participating in this years edition of Google Summer of Code.
> Initially I wanted to propose the implementation of ARMv7
> virtualization extensions. I know this is not supported at the moment.
> Also based on the documentation I found I thought it is still untouched.
> However, when I looked at git log I saw that there is some preparation
> to include EL2 support (LPAE, nested paging preparation, etc).
Yes, we have put in some initial foundational changes but
actual support is still missing. Edgar, can you remind me
whether you have some pending patches for EL2 support still?
> Is there demand for a GSoC project to further ARM virtualization
> extension support?
We would certainly like to see virtualization emulation
supported in upstream QEMU. I think my main areas of
concern would be:
* working with any existing code that Edgar has up his sleeve
* having a project plan that divides the work up into small
but coherent chunks that can be landed upstream incrementally
(to avoid the failure mode of "work all summer but don't
get it finished, and so don't have anything concrete
to show for it at the end")
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-20 17:44 ` Peter Maydell
@ 2015-03-21 3:16 ` Sergey Fedorov
2015-03-21 4:49 ` Edgar E. Iglesias
2015-03-23 11:29 ` Merten Sach
2015-03-23 11:29 ` Merten Sach
1 sibling, 2 replies; 11+ messages in thread
From: Sergey Fedorov @ 2015-03-21 3:16 UTC (permalink / raw)
To: Peter Maydell, Merten Sach; +Cc: Edgar E. Iglesias, QEMU Developers
On 20.03.2015 20:44, Peter Maydell wrote:
> On 20 March 2015 at 17:25, Merten Sach <msach@mailbox.tu-berlin.de> wrote:
>> I'm interested in participating in this years edition of Google Summer of Code.
>> Initially I wanted to propose the implementation of ARMv7
>> virtualization extensions. I know this is not supported at the moment.
>> Also based on the documentation I found I thought it is still untouched.
>> However, when I looked at git log I saw that there is some preparation
>> to include EL2 support (LPAE, nested paging preparation, etc).
> Yes, we have put in some initial foundational changes but
> actual support is still missing. Edgar, can you remind me
> whether you have some pending patches for EL2 support still?
>
>> Is there demand for a GSoC project to further ARM virtualization
>> extension support?
> We would certainly like to see virtualization emulation
> supported in upstream QEMU. I think my main areas of
> concern would be:
> * working with any existing code that Edgar has up his sleeve
> * having a project plan that divides the work up into small
> but coherent chunks that can be landed upstream incrementally
> (to avoid the failure mode of "work all summer but don't
> get it finished, and so don't have anything concrete
> to show for it at the end")
>
> thanks
> -- PMM
>
Hi!
I am currently working on AArch64 EL2 support. There is a plan to submit
the changes to the community. Merten, IIUYC, you are going to support
only AArch32 EL2?
Best regards,
Sergey
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-21 3:16 ` Sergey Fedorov
@ 2015-03-21 4:49 ` Edgar E. Iglesias
2015-03-22 14:30 ` Sergey Fedorov
2015-03-23 11:29 ` Merten Sach
1 sibling, 1 reply; 11+ messages in thread
From: Edgar E. Iglesias @ 2015-03-21 4:49 UTC (permalink / raw)
To: Sergey Fedorov; +Cc: Peter Maydell, Merten Sach, QEMU Developers
On Sat, Mar 21, 2015 at 06:16:54AM +0300, Sergey Fedorov wrote:
> On 20.03.2015 20:44, Peter Maydell wrote:
> > On 20 March 2015 at 17:25, Merten Sach <msach@mailbox.tu-berlin.de> wrote:
> >> I'm interested in participating in this years edition of Google Summer of Code.
> >> Initially I wanted to propose the implementation of ARMv7
> >> virtualization extensions. I know this is not supported at the moment.
> >> Also based on the documentation I found I thought it is still untouched.
> >> However, when I looked at git log I saw that there is some preparation
> >> to include EL2 support (LPAE, nested paging preparation, etc).
> > Yes, we have put in some initial foundational changes but
> > actual support is still missing. Edgar, can you remind me
> > whether you have some pending patches for EL2 support still?
> >
> >> Is there demand for a GSoC project to further ARM virtualization
> >> extension support?
> > We would certainly like to see virtualization emulation
> > supported in upstream QEMU. I think my main areas of
> > concern would be:
> > * working with any existing code that Edgar has up his sleeve
> > * having a project plan that divides the work up into small
> > but coherent chunks that can be landed upstream incrementally
> > (to avoid the failure mode of "work all summer but don't
> > get it finished, and so don't have anything concrete
> > to show for it at the end")
> >
> > thanks
> > -- PMM
> >
>
> Hi!
>
> I am currently working on AArch64 EL2 support. There is a plan to submit
> the changes to the community. Merten, IIUYC, you are going to support
> only AArch32 EL2?
>
Hi all,
Sergey, that's good to hear!
Peter, Yes I have quite a bit of patch material but unfortunately a lot of
it is not in a state for upstreaming. I know I've promised to clean
it up and submit more but I have not been able to find time for it,
sorry about that...
Patches that I planned to send are around hyp timers, misc bugfixes
here and there and maybe the GIC virt extensions.
The 2 stage MMU code I have is shamefully ugly but it kind of works
so it is useful for understanding some of the problems that need to be
solved. (works well enough to boot XEN and KVM guests).
Sergey and myself communicated a bit off-list a while back ago
and he expressed interest in AArch64 EL2 and my code. Sergey, it would be
very interesting to hear more details on how you are doing on that?
Cheers,
Edgar
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-21 4:49 ` Edgar E. Iglesias
@ 2015-03-22 14:30 ` Sergey Fedorov
2015-03-24 2:58 ` Edgar E. Iglesias
0 siblings, 1 reply; 11+ messages in thread
From: Sergey Fedorov @ 2015-03-22 14:30 UTC (permalink / raw)
To: Edgar E. Iglesias; +Cc: Peter Maydell, Merten Sach, QEMU Developers
On 20.03.2015 21:49, Edgar E. Iglesias wrote:
> Hi all,
>
> Sergey, that's good to hear!
>
> Peter, Yes I have quite a bit of patch material but unfortunately a lot of
> it is not in a state for upstreaming. I know I've promised to clean
> it up and submit more but I have not been able to find time for it,
> sorry about that...
>
> Patches that I planned to send are around hyp timers, misc bugfixes
> here and there and maybe the GIC virt extensions.
>
> The 2 stage MMU code I have is shamefully ugly but it kind of works
> so it is useful for understanding some of the problems that need to be
> solved. (works well enough to boot XEN and KVM guests).
>
> Sergey and myself communicated a bit off-list a while back ago
> and he expressed interest in AArch64 EL2 and my code. Sergey, it would be
> very interesting to hear more details on how you are doing on that?
>
> Cheers,
> Edgar
Hi Edgar,
I successfully reproduced your results with running KVM on your patches.
Then I decided to start implementing the features without looking at
your code so that I can get somewhat different view on how to implement
that. Then I plan to compare my and your code and make a final version.
Now I've got patches that allows to boot Linux kernel with KVM enabled.
So KVM initialization is happy. Basically, I added some EL2 registers
required by KVM and adjusted page table walk to support EL2 translation
regime. A colleague of mine has prepared a patch to support
virtualization extensions in generic timer.
Before sending patches here, I will do my best to carefully compare my
final code against yours and credit you appropriately in that patches
for any derivatives found. Anyway, do not hesitate to ask questions or
point out any misses in respect of this matter.
Best regards,
Sergey
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-20 17:44 ` Peter Maydell
2015-03-21 3:16 ` Sergey Fedorov
@ 2015-03-23 11:29 ` Merten Sach
2015-03-23 11:51 ` Peter Maydell
1 sibling, 1 reply; 11+ messages in thread
From: Merten Sach @ 2015-03-23 11:29 UTC (permalink / raw)
To: Peter Maydell; +Cc: Edgar E. Iglesias, QEMU Developers
On 20/03/15 18:44, Peter Maydell wrote:
> * having a project plan that divides the work up into small
> but coherent chunks that can be landed upstream incrementally
> (to avoid the failure mode of "work all summer but don't
> get it finished, and so don't have anything concrete
> to show for it at the end")
Hi,
what is the policy for incomplete specification implementations?
For example, I could imagine implementing mode switches and exception routing
without nested paging (though Sergey already implemented it). This would not be
sufficient to run KVM. However one could test it.
Best regards,
Merten
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-21 3:16 ` Sergey Fedorov
2015-03-21 4:49 ` Edgar E. Iglesias
@ 2015-03-23 11:29 ` Merten Sach
2015-03-24 13:47 ` Sergey Fedorov
1 sibling, 1 reply; 11+ messages in thread
From: Merten Sach @ 2015-03-23 11:29 UTC (permalink / raw)
To: Sergey Fedorov, Peter Maydell; +Cc: Edgar E. Iglesias, QEMU Developers
On 21/03/15 04:16, Sergey Fedorov wrote:
> Hi!
>
> I am currently working on AArch64 EL2 support. There is a plan to submit
> the changes to the community. Merten, IIUYC, you are going to support
> only AArch32 EL2?
>
> Best regards,
> Sergey
Hi
Yes, my intention is to focus on AArch32 as I'm more familiar with that
architecture.
Thanks for the insight into the current state. As I understand, some parts of
AArch64 and AArch32 EL2 modes share a some functionality. For example,
* VGIC - compatible
* Exception Routing - different interface but same function
* Pagetable format - implemented with LPAE
* Generic Timer - different interface but same function
Are these assumptions correct? I hope I didn't simplify it to much.
And also: does it make sense to work with your code? Are you planing to commit
the changes before May?
Would someone mentor this project?
Best regards,
Merten
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-23 11:29 ` Merten Sach
@ 2015-03-23 11:51 ` Peter Maydell
0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2015-03-23 11:51 UTC (permalink / raw)
To: Merten Sach; +Cc: Edgar E. Iglesias, QEMU Developers
On 23 March 2015 at 11:29, Merten Sach <msach@mailbox.tu-berlin.de> wrote:
> On 20/03/15 18:44, Peter Maydell wrote:
>> * having a project plan that divides the work up into small
>> but coherent chunks that can be landed upstream incrementally
>> (to avoid the failure mode of "work all summer but don't
>> get it finished, and so don't have anything concrete
>> to show for it at the end")
> what is the policy for incomplete specification implementations?
Basically if it's a correct implementation of a coherent chunk
of the spec (and wouldn't need to be completely rewritten when
the rest is added) than I'm happy to add it to the codebase.
It's much easier to do code review on smaller parts of the
spec at a time (and it means if there are global observations
in code review you can naturally follow them in code you write
in future, rather than having to change a lot of code you've
already written).
Regarding AArch32 vs AArch64, we don't require support for
both to start with, but in general the approach I've found works
best is to at least be aware of the 64-bit spec as you go along,
so that it's clear how the 64-bit parts will fit in when they're
implemented later.
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-22 14:30 ` Sergey Fedorov
@ 2015-03-24 2:58 ` Edgar E. Iglesias
0 siblings, 0 replies; 11+ messages in thread
From: Edgar E. Iglesias @ 2015-03-24 2:58 UTC (permalink / raw)
To: Sergey Fedorov; +Cc: Peter Maydell, Merten Sach, QEMU Developers
On Sun, Mar 22, 2015 at 07:30:07AM -0700, Sergey Fedorov wrote:
> On 20.03.2015 21:49, Edgar E. Iglesias wrote:
> > Hi all,
> >
> > Sergey, that's good to hear!
> >
> > Peter, Yes I have quite a bit of patch material but unfortunately a lot of
> > it is not in a state for upstreaming. I know I've promised to clean
> > it up and submit more but I have not been able to find time for it,
> > sorry about that...
> >
> > Patches that I planned to send are around hyp timers, misc bugfixes
> > here and there and maybe the GIC virt extensions.
> >
> > The 2 stage MMU code I have is shamefully ugly but it kind of works
> > so it is useful for understanding some of the problems that need to be
> > solved. (works well enough to boot XEN and KVM guests).
> >
> > Sergey and myself communicated a bit off-list a while back ago
> > and he expressed interest in AArch64 EL2 and my code. Sergey, it would be
> > very interesting to hear more details on how you are doing on that?
> >
> > Cheers,
> > Edgar
>
> Hi Edgar,
>
> I successfully reproduced your results with running KVM on your patches.
> Then I decided to start implementing the features without looking at
> your code so that I can get somewhat different view on how to implement
> that. Then I plan to compare my and your code and make a final version.
>
> Now I've got patches that allows to boot Linux kernel with KVM enabled.
> So KVM initialization is happy. Basically, I added some EL2 registers
> required by KVM and adjusted page table walk to support EL2 translation
> regime. A colleague of mine has prepared a patch to support
> virtualization extensions in generic timer.
>
> Before sending patches here, I will do my best to carefully compare my
> final code against yours and credit you appropriately in that patches
> for any derivatives found. Anyway, do not hesitate to ask questions or
> point out any misses in respect of this matter.
Thanks Sergey!
Cheers,
Edgar
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-23 11:29 ` Merten Sach
@ 2015-03-24 13:47 ` Sergey Fedorov
2015-03-25 22:09 ` Merten Sach
0 siblings, 1 reply; 11+ messages in thread
From: Sergey Fedorov @ 2015-03-24 13:47 UTC (permalink / raw)
To: Merten Sach, Peter Maydell; +Cc: Edgar E. Iglesias, QEMU Developers
On 23.03.2015 04:29, Merten Sach wrote:
> On 21/03/15 04:16, Sergey Fedorov wrote:
>> Hi!
>>
>> I am currently working on AArch64 EL2 support. There is a plan to submit
>> the changes to the community. Merten, IIUYC, you are going to support
>> only AArch32 EL2?
>>
>> Best regards,
>> Sergey
> Hi
>
> Yes, my intention is to focus on AArch32 as I'm more familiar with that
> architecture.
>
> Thanks for the insight into the current state. As I understand, some parts of
> AArch64 and AArch32 EL2 modes share a some functionality. For example,
> * VGIC - compatible
> * Exception Routing - different interface but same function
> * Pagetable format - implemented with LPAE
> * Generic Timer - different interface but same function
>
> Are these assumptions correct? I hope I didn't simplify it to much.
>
> And also: does it make sense to work with your code? Are you planing to commit
> the changes before May?
>
> Would someone mentor this project?
>
> Best regards,
> Merten
>
Hi,
I didn't investigate the difference between AArch64 and AArch32. But I
believe that AArch64 should be better structured. As of GIC and Generic
Timer, I think you are right.
I plan to start committing it in coherent chunks as soon as I can. And
yes, I hope I finish it before May.
Best regards,
Sergey
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions
2015-03-24 13:47 ` Sergey Fedorov
@ 2015-03-25 22:09 ` Merten Sach
0 siblings, 0 replies; 11+ messages in thread
From: Merten Sach @ 2015-03-25 22:09 UTC (permalink / raw)
To: Sergey Fedorov, Peter Maydell; +Cc: Edgar E. Iglesias, QEMU Developers
On 24/03/15 14:47, Sergey Fedorov wrote:
> On 23.03.2015 04:29, Merten Sach wrote:
>> On 21/03/15 04:16, Sergey Fedorov wrote:
>>> Hi!
>>>
>>> I am currently working on AArch64 EL2 support. There is a plan to submit
>>> the changes to the community. Merten, IIUYC, you are going to support
>>> only AArch32 EL2?
>>>
>>> Best regards,
>>> Sergey
>> Hi
>>
>> Yes, my intention is to focus on AArch32 as I'm more familiar with that
>> architecture.
>>
>> Thanks for the insight into the current state. As I understand, some parts of
>> AArch64 and AArch32 EL2 modes share a some functionality. For example,
>> * VGIC - compatible
>> * Exception Routing - different interface but same function
>> * Pagetable format - implemented with LPAE
>> * Generic Timer - different interface but same function
>>
>> Are these assumptions correct? I hope I didn't simplify it to much.
>>
>> And also: does it make sense to work with your code? Are you planing to commit
>> the changes before May?
>>
>> Would someone mentor this project?
>>
>> Best regards,
>> Merten
>>
>
> Hi,
>
> I didn't investigate the difference between AArch64 and AArch32. But I
> believe that AArch64 should be better structured. As of GIC and Generic
> Timer, I think you are right.
>
> I plan to start committing it in coherent chunks as soon as I can. And
> yes, I hope I finish it before May.
>
> Best regards,
> Sergey
>
>
Hi,
thanks for all your answers.
Sorry that I ask the same question again: would someone mentor this project? I
guess if not it makes no sense to hand in the proposal. :-(
After reading the answers by Sergey and Edgar, I'm unsure if the amount of work
is adequate for 12 weeks. Many AArch32 registers just map flat to their AArch64
counterpart and the function are mostly the same. I got the impression that
mostly fixing interfaces is not enough for GSoC.
Best regards
Merten
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-03-25 22:09 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-20 17:25 [Qemu-devel] GSoC Proposal: ARM Virtualization Extensions Merten Sach
2015-03-20 17:44 ` Peter Maydell
2015-03-21 3:16 ` Sergey Fedorov
2015-03-21 4:49 ` Edgar E. Iglesias
2015-03-22 14:30 ` Sergey Fedorov
2015-03-24 2:58 ` Edgar E. Iglesias
2015-03-23 11:29 ` Merten Sach
2015-03-24 13:47 ` Sergey Fedorov
2015-03-25 22:09 ` Merten Sach
2015-03-23 11:29 ` Merten Sach
2015-03-23 11:51 ` Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).