diff for duplicates of <EED22D54-8B0F-4EAE-BA70-C5C086DBB7C1@suse.de>
diff --git a/a/1.txt b/N1/1.txt
index 80cc289..76d95e8 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -5,57 +5,67 @@ On 07.07.2012, at 10:39, Caraman Mihai Claudiu-B02008 wrote:
>> From: Alexander Graf [agraf@suse.de]
>> Sent: Saturday, July 07, 2012 2:11 AM
>> To: Caraman Mihai Claudiu-B02008
->> Cc: Benjamin Herrenschmidt; <kvm-ppc@vger.kernel.org>; KVM list; linuxppc-dev; qemu-ppc@nongnu.org List
->> Subject: Re: [Qemu-ppc] [RFC PATCH 12/17] PowerPC: booke64: Add DO_KVM kernel hooks
->>
+>> Cc: Benjamin Herrenschmidt; <kvm-ppc@vger.kernel.org>; KVM list; =
+linuxppc-dev; qemu-ppc@nongnu.org List
+>> Subject: Re: [Qemu-ppc] [RFC PATCH 12/17] PowerPC: booke64: Add =
+DO_KVM kernel hooks
+>>=20
>> On 07.07.2012, at 00:33, Caraman Mihai Claudiu-B02008 wrote:
->>
+>>=20
>>>> -----Original Message-----
>>>> From: Benjamin Herrenschmidt [mailto:benh@kernel.crashing.org]
>>>> Sent: Thursday, July 05, 2012 1:26 AM
>>>> To: Alexander Graf
->>>> Cc: Caraman Mihai Claudiu-B02008; <kvm-ppc@vger.kernel.org>; KVM list;
+>>>> Cc: Caraman Mihai Claudiu-B02008; <kvm-ppc@vger.kernel.org>; KVM =
+list;
>>>> linuxppc-dev; qemu-ppc@nongnu.org List
->>>> Subject: Re: [Qemu-ppc] [RFC PATCH 12/17] PowerPC: booke64: Add DO_KVM
+>>>> Subject: Re: [Qemu-ppc] [RFC PATCH 12/17] PowerPC: booke64: Add =
+DO_KVM
>>>> kernel hooks
->>>>
->>>> You can't but in any case I don't see the point of the conditional here,
->>>> we'll eventually have to load srr1 no ? We can move the load up to here
+>>>>=20
+>>>> You can't but in any case I don't see the point of the conditional =
+here,
+>>>> we'll eventually have to load srr1 no ? We can move the load up to =
+here
>>>> in all cases or can't we ?
->>>
->>> I like the idea, but there is a problem with addition macros which may clobber
+>>>=20
+>>> I like the idea, but there is a problem with addition macros which =
+may clobber
>>> r11 and PROLOG_ADDITION_MASKABLE_GEN is such a case.
->>
+>>=20
>> Mike -v please :)
->
+>=20
> Ben suggested something like this:
->
+> =09
> #define EXCEPTION_PROLOG(n, type, addition) \
-> mtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ \
+> mtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ =
+\
> mfspr r13,SPRN_SPRG_PACA; /* get PACA */ \
> std r10,PACA_EX##type+EX_R10(r13); \
> std r11,PACA_EX##type+EX_R11(r13); \
-> mfcr r10; /* save CR */ \
+> mfcr r10; /* save CR */ \=09
> + mfspr r11,SPRN_##type##_SRR1;/* what are we coming from */ \
> DO_KVM intnum,srr1; \
> addition; /* additional code for that exc. */ \
> std r1,PACA_EX##type+EX_R1(r13); /* save old r1 in the PACA */ \
-> stw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \
+> stw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ =
+\
> - mfspr r11,SPRN_##type##_SRR1;/* what are we coming from */ \
> type##_SET_KSTACK; /* get special stack if necessary */\
> andi. r10,r11,MSR_PR; /* save stack pointer */ \
->
+>=20
> But one of the addition looks like this:
->
+> =09
> #define PROLOG_ADDITION_MASKABLE_GEN(n) \
> lbz r11,PACASOFTIRQEN(r13); /* are irqs soft-disabled ? */ \
> cmpwi cr0,r11,0; /* yes -> go out of line */ \
-> beq masked_interrupt_book3e_##n
->
+> beq masked_interrupt_book3e_##n=09
+>=20
> So for maskable gen we end up with:
->
+>=20
> #define EXCEPTION_PROLOG(n, type, addition) \
-> mtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ \
+> mtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ =
+\
> mfspr r13,SPRN_SPRG_PACA; /* get PACA */ \
> std r10,PACA_EX##type+EX_R10(r13); \
> std r11,PACA_EX##type+EX_R11(r13); \
@@ -66,20 +76,24 @@ On 07.07.2012, at 10:39, Caraman Mihai Claudiu-B02008 wrote:
> cmpwi cr0,r11,0; /* yes -> go out of line */ \
> beq masked_interrupt_book3e_##n \
> std r1,PACA_EX##type+EX_R1(r13); /* save old r1 in the PACA */ \
-> stw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \
+> stw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ =
+\
> type##_SET_KSTACK; /* get special stack if necessary */\
> andi. r10,r11,MSR_PR; /* save stack pointer */ \
->
-> This affects the last asm line, we load srr1 into r11 but clobber it in-between.
-> We need a spare register for maskable gen addition. I think we can free r10 sooner
+> =09
+> This affects the last asm line, we load srr1 into r11 but clobber it =
+in-between.
+> We need a spare register for maskable gen addition. I think we can =
+free r10 sooner
> and used it in addition like this:
Ah, makes sense, yes.
->
+>=20
> #define EXCEPTION_PROLOG(n, type, addition) \
-> mtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ \
-> mfspr r13,SPRN_SPRG_PACA; /* get PACA */ \
+> mtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ =
+\
+> mfspr r13,SPRN_SPRG_PACA; /* get PACA */ \ =09
> std r10,PACA_EX##type+EX_R10(r13); \
> std r11,PACA_EX##type+EX_R11(r13); \
@@ -90,7 +104,8 @@ Alex
> + mfspr r11,SPRN_##type##_SRR1;/* what are we coming from */ \
> mfcr r10; /* save CR */ \
-> + stw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \
+> + stw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ =
+\
> DO_KVM intnum,srr1; \
> - lbz r11,PACASOFTIRQEN(r13); /* are irqs soft-disabled ? */ \
> - cmpwi cr0,r11,0; /* yes -> go out of line */ \
@@ -98,11 +113,12 @@ Alex
> + cmpwi cr0,r10,0; /* yes -> go out of line */ \
> beq masked_interrupt_book3e_##n \
> std r1,PACA_EX##type+EX_R1(r13); /* save old r1 in the PACA */ \
-> - stw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \
+> - stw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ =
+\
> - mfspr r11,SPRN_##type##_SRR1;/* what are we coming from */ \
> type##_SET_KSTACK; /* get special stack if necessary */\
> andi. r10,r11,MSR_PR; /* save stack pointer */ \
->
+> =09
> -Mike
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
diff --git a/a/content_digest b/N1/content_digest
index 5fb4ae1..64ce599 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -32,11 +32,10 @@
"To\0Caraman Mihai Claudiu-B02008 <B02008\@freescale.com>\0"
]
[
- "Cc\0Benjamin Herrenschmidt <benh\@kernel.crashing.org>",
- " <kvm-ppc\@vger.kernel.org> <kvm-ppc\@vger.kernel.org>",
- " KVM list <kvm\@vger.kernel.org>",
+ "Cc\0qemu-ppc\@nongnu.org List <qemu-ppc\@nongnu.org>",
" linuxppc-dev <linuxppc-dev\@lists.ozlabs.org>",
- " qemu-ppc\@nongnu.org List <qemu-ppc\@nongnu.org>\0"
+ " KVM list <kvm\@vger.kernel.org>",
+ " <kvm-ppc\@vger.kernel.org> <kvm-ppc\@vger.kernel.org>\0"
]
[
"\0000:1\0"
@@ -52,57 +51,67 @@
">> From: Alexander Graf [agraf\@suse.de]\n",
">> Sent: Saturday, July 07, 2012 2:11 AM\n",
">> To: Caraman Mihai Claudiu-B02008\n",
- ">> Cc: Benjamin Herrenschmidt; <kvm-ppc\@vger.kernel.org>; KVM list; linuxppc-dev; qemu-ppc\@nongnu.org List\n",
- ">> Subject: Re: [Qemu-ppc] [RFC PATCH 12/17] PowerPC: booke64: Add DO_KVM kernel hooks\n",
- ">> \n",
+ ">> Cc: Benjamin Herrenschmidt; <kvm-ppc\@vger.kernel.org>; KVM list; =\n",
+ "linuxppc-dev; qemu-ppc\@nongnu.org List\n",
+ ">> Subject: Re: [Qemu-ppc] [RFC PATCH 12/17] PowerPC: booke64: Add =\n",
+ "DO_KVM kernel hooks\n",
+ ">>=20\n",
">> On 07.07.2012, at 00:33, Caraman Mihai Claudiu-B02008 wrote:\n",
- ">> \n",
+ ">>=20\n",
">>>> -----Original Message-----\n",
">>>> From: Benjamin Herrenschmidt [mailto:benh\@kernel.crashing.org]\n",
">>>> Sent: Thursday, July 05, 2012 1:26 AM\n",
">>>> To: Alexander Graf\n",
- ">>>> Cc: Caraman Mihai Claudiu-B02008; <kvm-ppc\@vger.kernel.org>; KVM list;\n",
+ ">>>> Cc: Caraman Mihai Claudiu-B02008; <kvm-ppc\@vger.kernel.org>; KVM =\n",
+ "list;\n",
">>>> linuxppc-dev; qemu-ppc\@nongnu.org List\n",
- ">>>> Subject: Re: [Qemu-ppc] [RFC PATCH 12/17] PowerPC: booke64: Add DO_KVM\n",
+ ">>>> Subject: Re: [Qemu-ppc] [RFC PATCH 12/17] PowerPC: booke64: Add =\n",
+ "DO_KVM\n",
">>>> kernel hooks\n",
- ">>>> \n",
- ">>>> You can't but in any case I don't see the point of the conditional here,\n",
- ">>>> we'll eventually have to load srr1 no ? We can move the load up to here\n",
+ ">>>>=20\n",
+ ">>>> You can't but in any case I don't see the point of the conditional =\n",
+ "here,\n",
+ ">>>> we'll eventually have to load srr1 no ? We can move the load up to =\n",
+ "here\n",
">>>> in all cases or can't we ?\n",
- ">>> \n",
- ">>> I like the idea, but there is a problem with addition macros which may clobber\n",
+ ">>>=20\n",
+ ">>> I like the idea, but there is a problem with addition macros which =\n",
+ "may clobber\n",
">>> r11 and PROLOG_ADDITION_MASKABLE_GEN is such a case.\n",
- ">> \n",
+ ">>=20\n",
">> Mike -v please :)\n",
- "> \n",
+ ">=20\n",
"> Ben suggested something like this:\n",
- "> \t\n",
+ "> =09\n",
"> #define EXCEPTION_PROLOG(n, type, addition) \\\n",
- "> \tmtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ \\\n",
+ "> \tmtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ =\n",
+ "\\\n",
"> \tmfspr r13,SPRN_SPRG_PACA; /* get PACA */ \\\n",
"> \tstd r10,PACA_EX##type+EX_R10(r13); \\\n",
"> \tstd r11,PACA_EX##type+EX_R11(r13); \\\n",
- "> \tmfcr r10; /* save CR */ \\\t\n",
+ "> \tmfcr r10; /* save CR */ \\=09\n",
"> +\tmfspr r11,SPRN_##type##_SRR1;/* what are we coming from */ \\\n",
"> \tDO_KVM\tintnum,srr1; \\\n",
"> \taddition; /* additional code for that exc. */ \\\n",
"> \tstd r1,PACA_EX##type+EX_R1(r13); /* save old r1 in the PACA */ \\\n",
- "> \tstw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \\\n",
+ "> \tstw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ =\n",
+ "\\\n",
"> -\tmfspr r11,SPRN_##type##_SRR1;/* what are we coming from */ \\\n",
"> \ttype##_SET_KSTACK; /* get special stack if necessary */\\\n",
"> \tandi. r10,r11,MSR_PR; /* save stack pointer */ \\\n",
- "> \n",
+ ">=20\n",
"> But one of the addition looks like this:\n",
- "> \t\n",
+ "> =09\n",
"> #define PROLOG_ADDITION_MASKABLE_GEN(n) \\\n",
"> \tlbz r11,PACASOFTIRQEN(r13); /* are irqs soft-disabled ? */ \\\n",
"> \tcmpwi cr0,r11,0; /* yes -> go out of line */ \\\n",
- "> \tbeq masked_interrupt_book3e_##n\t\n",
- "> \n",
+ "> \tbeq masked_interrupt_book3e_##n=09\n",
+ ">=20\n",
"> So for maskable gen we end up with:\n",
- "> \n",
+ ">=20\n",
"> #define EXCEPTION_PROLOG(n, type, addition) \\\n",
- "> \tmtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ \\\n",
+ "> \tmtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ =\n",
+ "\\\n",
"> \tmfspr r13,SPRN_SPRG_PACA; /* get PACA */ \\\n",
"> \tstd r10,PACA_EX##type+EX_R10(r13); \\\n",
"> \tstd r11,PACA_EX##type+EX_R11(r13); \\\n",
@@ -113,20 +122,24 @@
"> \tcmpwi cr0,r11,0; /* yes -> go out of line */ \\\n",
"> \tbeq masked_interrupt_book3e_##n\t\\\n",
"> \tstd r1,PACA_EX##type+EX_R1(r13); /* save old r1 in the PACA */ \\\n",
- "> \tstw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \\\n",
+ "> \tstw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ =\n",
+ "\\\n",
"> \ttype##_SET_KSTACK; /* get special stack if necessary */\\\n",
"> \tandi. r10,r11,MSR_PR; /* save stack pointer */ \\\n",
- "> \t\n",
- "> This affects the last asm line, we load srr1 into r11 but clobber it in-between.\n",
- "> We need a spare register for maskable gen addition. I think we can free r10 sooner\n",
+ "> =09\n",
+ "> This affects the last asm line, we load srr1 into r11 but clobber it =\n",
+ "in-between.\n",
+ "> We need a spare register for maskable gen addition. I think we can =\n",
+ "free r10 sooner\n",
"> and used it in addition like this:\n",
"\n",
"Ah, makes sense, yes.\n",
"\n",
- "> \n",
+ ">=20\n",
"> #define EXCEPTION_PROLOG(n, type, addition) \\\n",
- "> \tmtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ \\\n",
- "> \tmfspr r13,SPRN_SPRG_PACA; /* get PACA */ \\\t\t\n",
+ "> \tmtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ =\n",
+ "\\\n",
+ "> \tmfspr r13,SPRN_SPRG_PACA; /* get PACA */ \\\t=09\n",
"> \tstd r10,PACA_EX##type+EX_R10(r13); \\\n",
"> \tstd r11,PACA_EX##type+EX_R11(r13); \\\n",
"\n",
@@ -137,7 +150,8 @@
"\n",
"> +\tmfspr r11,SPRN_##type##_SRR1;/* what are we coming from */ \\\n",
"> \tmfcr r10; /* save CR */ \\\n",
- "> + \tstw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \\\n",
+ "> + \tstw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ =\n",
+ "\\\n",
"> \tDO_KVM\tintnum,srr1; \\\n",
"> -\tlbz r11,PACASOFTIRQEN(r13); /* are irqs soft-disabled ? */ \\\n",
"> -\tcmpwi cr0,r11,0; /* yes -> go out of line */ \\\n",
@@ -145,11 +159,12 @@
"> +\tcmpwi cr0,r10,0; /* yes -> go out of line */ \\\n",
"> \tbeq masked_interrupt_book3e_##n\t\\\n",
"> \tstd r1,PACA_EX##type+EX_R1(r13); /* save old r1 in the PACA */ \\\n",
- "> - \tstw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \\\n",
+ "> - \tstw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ =\n",
+ "\\\n",
"> -\tmfspr r11,SPRN_##type##_SRR1;/* what are we coming from */ \\\n",
"> \ttype##_SET_KSTACK; /* get special stack if necessary */\\\n",
"> \tandi. r10,r11,MSR_PR; /* save stack pointer */ \\\n",
- "> \t\n",
+ "> =09\n",
"> -Mike\n",
"> --\n",
"> To unsubscribe from this list: send the line \"unsubscribe kvm-ppc\" in\n",
@@ -157,4 +172,4 @@
"> More majordomo info at http://vger.kernel.org/majordomo-info.html"
]
-712b2b83a06c5b261cf15a330ee2400d265005bcb60748e9ff0b15696cc3256e
+5d2e2bcb1fb9de6ca4bfb5d8ced16899c4d1b474a2497ac069448d1db8298109
diff --git a/a/content_digest b/N2/content_digest
index 5fb4ae1..0c80a3a 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -26,7 +26,7 @@
"Subject\0Re: [Qemu-ppc] [RFC PATCH 12/17] PowerPC: booke64: Add DO_KVM kernel hooks\0"
]
[
- "Date\0Thu, 12 Jul 2012 00:25:19 +0200\0"
+ "Date\0Wed, 11 Jul 2012 22:25:19 +0000\0"
]
[
"To\0Caraman Mihai Claudiu-B02008 <B02008\@freescale.com>\0"
@@ -157,4 +157,4 @@
"> More majordomo info at http://vger.kernel.org/majordomo-info.html"
]
-712b2b83a06c5b261cf15a330ee2400d265005bcb60748e9ff0b15696cc3256e
+5e1353f754acac7496e9950337344be5be82aa9d97c49710f5d3ad8053dbc603
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.