* [Qemu-devel] [5083] PPC: Switch a few instructions to TCG
@ 2008-08-24 19:05 Aurelien Jarno
2008-08-24 22:08 ` J. Mayer
0 siblings, 1 reply; 7+ messages in thread
From: Aurelien Jarno @ 2008-08-24 19:05 UTC (permalink / raw)
To: qemu-devel
Revision: 5083
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5083
Author: aurel32
Date: 2008-08-24 19:05:35 +0000 (Sun, 24 Aug 2008)
Log Message:
-----------
PPC: Switch a few instructions to TCG
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Modified Paths:
--------------
trunk/target-ppc/op.c
trunk/target-ppc/op_helper.c
trunk/target-ppc/op_helper.h
trunk/target-ppc/translate.c
Added Paths:
-----------
trunk/target-ppc/helper.h
Added: trunk/target-ppc/helper.h
===================================================================
--- trunk/target-ppc/helper.h (rev 0)
+++ trunk/target-ppc/helper.h 2008-08-24 19:05:35 UTC (rev 5083)
@@ -0,0 +1,21 @@
+#ifndef DEF_HELPER
+#define DEF_HELPER(ret, name, params) ret name params;
+#endif
+
+DEF_HELPER(target_ulong, do_load_cr, (void))
+DEF_HELPER(void, do_print_mem_EA, (target_ulong))
+DEF_HELPER(void, do_store_cr, (uint32_t))
+
+#if !defined (CONFIG_USER_ONLY)
+DEF_HELPER(void, do_store_msr, (target_ulong))
+#if defined(TARGET_PPC64)
+DEF_HELPER(void, do_store_msr_32, (target_ulong))
+#endif
+#endif
+
+DEF_HELPER(target_ulong, do_popcntb, (target_ulong))
+#if defined(TARGET_PPC64)
+DEF_HELPER(target_ulong, do_popcntb_64, (target_ulong))
+#endif
+
+
Modified: trunk/target-ppc/op.c
===================================================================
--- trunk/target-ppc/op.c 2008-08-24 19:05:26 UTC (rev 5082)
+++ trunk/target-ppc/op.c 2008-08-24 19:05:35 UTC (rev 5083)
@@ -122,12 +122,6 @@
#define REG 31
#include "op_template.h"
-void OPPROTO op_print_mem_EA (void)
-{
- do_print_mem_EA(T0);
- RETURN();
-}
-
/* PowerPC state maintenance operations */
/* set_Rc0 */
void OPPROTO op_set_Rc0 (void)
@@ -136,13 +130,6 @@
RETURN();
}
-/* Constants load */
-void OPPROTO op_reset_T0 (void)
-{
- T0 = 0;
- RETURN();
-}
-
void OPPROTO op_set_T0 (void)
{
T0 = (uint32_t)PARAM1;
@@ -203,50 +190,11 @@
do_raise_exception_err(PARAM1, PARAM2);
}
-void OPPROTO op_update_nip (void)
-{
- env->nip = (uint32_t)PARAM1;
- RETURN();
-}
-
-#if defined(TARGET_PPC64)
-void OPPROTO op_update_nip_64 (void)
-{
- env->nip = ((uint64_t)PARAM1 << 32) | (uint64_t)PARAM2;
- RETURN();
-}
-#endif
-
void OPPROTO op_debug (void)
{
do_raise_exception(EXCP_DEBUG);
}
-/* Load/store special registers */
-void OPPROTO op_load_cr (void)
-{
- do_load_cr();
- RETURN();
-}
-
-void OPPROTO op_store_cr (void)
-{
- do_store_cr(PARAM1);
- RETURN();
-}
-
-void OPPROTO op_load_cro (void)
-{
- T0 = env->crf[PARAM1];
- RETURN();
-}
-
-void OPPROTO op_store_cro (void)
-{
- env->crf[PARAM1] = T0;
- RETURN();
-}
-
void OPPROTO op_load_xer_cr (void)
{
T0 = (xer_so << 3) | (xer_ov << 2) | (xer_ca << 1);
@@ -352,27 +300,6 @@
}
#endif
-void OPPROTO op_load_msr (void)
-{
- T0 = env->msr;
- RETURN();
-}
-
-void OPPROTO op_store_msr (void)
-{
- do_store_msr();
- RETURN();
-}
-
-#if defined (TARGET_PPC64)
-void OPPROTO op_store_msr_32 (void)
-{
- T0 = (env->msr & ~0xFFFFFFFFULL) | (T0 & 0xFFFFFFFF);
- do_store_msr();
- RETURN();
-}
-#endif
-
void OPPROTO op_update_riee (void)
{
/* We don't call do_store_msr here as we won't trigger
@@ -1377,20 +1304,6 @@
RETURN();
}
-void OPPROTO op_popcntb (void)
-{
- do_popcntb();
- RETURN();
-}
-
-#if defined(TARGET_PPC64)
-void OPPROTO op_popcntb_64 (void)
-{
- do_popcntb_64();
- RETURN();
-}
-#endif
-
/*** Integer logical ***/
/* and */
void OPPROTO op_and (void)
Modified: trunk/target-ppc/op_helper.c
===================================================================
--- trunk/target-ppc/op_helper.c 2008-08-24 19:05:26 UTC (rev 5082)
+++ trunk/target-ppc/op_helper.c 2008-08-24 19:05:35 UTC (rev 5083)
@@ -68,16 +68,16 @@
/*****************************************************************************/
/* Registers load and stores */
-void do_load_cr (void)
+target_ulong do_load_cr (void)
{
- T0 = (env->crf[0] << 28) |
- (env->crf[1] << 24) |
- (env->crf[2] << 20) |
- (env->crf[3] << 16) |
- (env->crf[4] << 12) |
- (env->crf[5] << 8) |
- (env->crf[6] << 4) |
- (env->crf[7] << 0);
+ return (env->crf[0] << 28) |
+ (env->crf[1] << 24) |
+ (env->crf[2] << 20) |
+ (env->crf[3] << 16) |
+ (env->crf[4] << 12) |
+ (env->crf[5] << 8) |
+ (env->crf[6] << 4) |
+ (env->crf[7] << 0);
}
void do_store_cr (uint32_t mask)
@@ -429,27 +429,27 @@
}
#endif
-void do_popcntb (void)
+target_ulong do_popcntb (target_ulong t0)
{
uint32_t ret;
int i;
ret = 0;
for (i = 0; i < 32; i += 8)
- ret |= ctpop8((T0 >> i) & 0xFF) << i;
- T0 = ret;
+ ret |= ctpop8((t0 >> i) & 0xFF) << i;
+ return ret;
}
#if defined(TARGET_PPC64)
-void do_popcntb_64 (void)
+target_ulong do_popcntb_64 (target_ulong t0)
{
uint64_t ret;
int i;
ret = 0;
for (i = 0; i < 64; i += 8)
- ret |= ctpop8((T0 >> i) & 0xFF) << i;
- T0 = ret;
+ ret |= ctpop8((t0 >> i) & 0xFF) << i;
+ return ret;
}
#endif
@@ -1404,15 +1404,23 @@
#if !defined (CONFIG_USER_ONLY)
void cpu_dump_rfi (target_ulong RA, target_ulong msr);
-void do_store_msr (void)
+void do_store_msr (target_ulong t0)
{
- T0 = hreg_store_msr(env, T0, 0);
- if (T0 != 0) {
+ t0 = hreg_store_msr(env, t0, 0);
+ if (t0 != 0) {
env->interrupt_request |= CPU_INTERRUPT_EXITTB;
- do_raise_exception(T0);
+ do_raise_exception(t0);
}
}
+#if defined (TARGET_PPC64)
+void do_store_msr_32 (target_ulong t0)
+{
+ t0 = (env->msr & ~0xFFFFFFFFULL) | (t0 & 0xFFFFFFFF);
+ do_store_msr(t0);
+}
+#endif
+
static always_inline void __do_rfi (target_ulong nip, target_ulong msr,
target_ulong msrm, int keep_msrh)
{
Modified: trunk/target-ppc/op_helper.h
===================================================================
--- trunk/target-ppc/op_helper.h 2008-08-24 19:05:26 UTC (rev 5082)
+++ trunk/target-ppc/op_helper.h 2008-08-24 19:05:35 UTC (rev 5083)
@@ -51,7 +51,6 @@
void do_print_mem_EA (target_ulong EA);
/* Registers load and stores */
-void do_load_cr (void);
void do_store_cr (uint32_t mask);
#if defined(TARGET_PPC64)
void do_store_pri (int prio);
@@ -88,10 +87,6 @@
void do_subfzeo_64 (void);
void do_srad (void);
#endif
-void do_popcntb (void);
-#if defined(TARGET_PPC64)
-void do_popcntb_64 (void);
-#endif
/* Floating-point arithmetic helpers */
void do_compute_fprf (int set_class);
@@ -138,7 +133,6 @@
void do_td (int flags);
#endif
#if !defined(CONFIG_USER_ONLY)
-void do_store_msr (void);
void do_rfi (void);
#if defined(TARGET_PPC64)
void do_rfid (void);
Modified: trunk/target-ppc/translate.c
===================================================================
--- trunk/target-ppc/translate.c 2008-08-24 19:05:26 UTC (rev 5082)
+++ trunk/target-ppc/translate.c 2008-08-24 19:05:35 UTC (rev 5083)
@@ -26,6 +26,7 @@
#include "cpu.h"
#include "exec-all.h"
#include "disas.h"
+#include "helper.h"
#include "tcg-op.h"
#include "qemu-common.h"
@@ -65,9 +66,24 @@
cpu_T[1] = tcg_global_reg_new(TCG_TYPE_TL, TCG_AREG2, "T1");
cpu_T[2] = tcg_global_reg_new(TCG_TYPE_TL, TCG_AREG3, "T2");
#endif
+
+ /* register helpers */
+#undef DEF_HELPER
+#define DEF_HELPER(ret, name, params) tcg_register_helper(name, #name);
+#include "helper.h"
+
done_init = 1;
}
+static inline void tcg_gen_helper_0_i(void *func, TCGv arg)
+{
+ TCGv tmp = tcg_const_i32(arg);
+
+ tcg_gen_helper_0_1(func, tmp);
+ tcg_temp_free(tmp);
+}
+
+
#if defined(OPTIMIZE_FPRF_UPDATE)
static uint16_t *gen_fprf_buf[OPC_BUF_SIZE];
static uint16_t **gen_fprf_ptr;
@@ -249,12 +265,16 @@
static always_inline void gen_update_nip (DisasContext *ctx, target_ulong nip)
{
+ TCGv tmp;
#if defined(TARGET_PPC64)
if (ctx->sf_mode)
- gen_op_update_nip_64(nip >> 32, nip);
+ tmp = tcg_const_i64(nip);
else
#endif
- gen_op_update_nip(nip);
+ tmp = tcg_const_i32((uint32_t)nip);
+
+ tcg_gen_st_tl(tmp, cpu_env, offsetof(CPUState, nip));
+ tcg_temp_free(tmp);
}
#define GEN_EXCP(ctx, excp, error) \
@@ -1305,7 +1325,7 @@
gen_op_load_gpr_T1(rB(ctx->opcode));
gen_op_xor();
} else {
- gen_op_reset_T0();
+ tcg_gen_movi_tl(cpu_T[0], 0);
}
gen_op_store_T0_gpr(rA(ctx->opcode));
if (unlikely(Rc(ctx->opcode) != 0))
@@ -1376,10 +1396,10 @@
gen_op_load_gpr_T0(rS(ctx->opcode));
#if defined(TARGET_PPC64)
if (ctx->sf_mode)
- gen_op_popcntb_64();
+ tcg_gen_helper_1_1(do_popcntb_64, cpu_T[0], cpu_T[0]);
else
#endif
- gen_op_popcntb();
+ tcg_gen_helper_1_1(do_popcntb, cpu_T[0], cpu_T[0]);
gen_op_store_T0_gpr(rA(ctx->opcode));
}
@@ -2100,7 +2120,7 @@
gen_op_addi(simm);
}
#ifdef DEBUG_MEMORY_ACCESSES
- gen_op_print_mem_EA();
+ tcg_gen_helper_0_0(do_print_mem_EA);
#endif
}
@@ -2114,19 +2134,19 @@
gen_op_add();
}
#ifdef DEBUG_MEMORY_ACCESSES
- gen_op_print_mem_EA();
+ tcg_gen_helper_0_0(do_print_mem_EA);
#endif
}
static always_inline void gen_addr_register (DisasContext *ctx)
{
if (rA(ctx->opcode) == 0) {
- gen_op_reset_T0();
+ tcg_gen_movi_tl(cpu_T[0], 0);
} else {
gen_op_load_gpr_T0(rA(ctx->opcode));
}
#ifdef DEBUG_MEMORY_ACCESSES
- gen_op_print_mem_EA();
+ tcg_gen_helper_0_0(do_print_mem_EA);
#endif
}
@@ -3225,10 +3245,10 @@
crm = CRM(ctx->opcode);
if (likely((crm ^ (crm - 1)) == 0)) {
crn = ffs(crm);
- gen_op_load_cro(7 - crn);
+ tcg_gen_ld8u_tl(cpu_T[0], cpu_env, offsetof(CPUState, crf[7 - crn]));
}
} else {
- gen_op_load_cr();
+ tcg_gen_helper_1_0(do_load_cr, cpu_T[0]);
}
gen_op_store_T0_gpr(rD(ctx->opcode));
}
@@ -3243,7 +3263,7 @@
GEN_EXCP_PRIVREG(ctx);
return;
}
- gen_op_load_msr();
+ tcg_gen_ld_tl(cpu_T[0], cpu_env, offsetof(CPUState, msr));
gen_op_store_T0_gpr(rD(ctx->opcode));
#endif
}
@@ -3327,10 +3347,10 @@
if (likely((ctx->opcode & 0x00100000) || (crm ^ (crm - 1)) == 0)) {
crn = ffs(crm);
gen_op_srli_T0(crn * 4);
- gen_op_andi_T0(0xF);
- gen_op_store_cro(7 - crn);
+ tcg_gen_andi_tl(cpu_T[0], cpu_T[0], 0xF);
+ tcg_gen_st8_tl(cpu_T[0], cpu_env, offsetof(CPUState, crf[7 - crn]));
} else {
- gen_op_store_cr(crm);
+ tcg_gen_helper_0_i(do_store_cr, crm);
}
}
@@ -3355,7 +3375,7 @@
* directly from ppc_store_msr
*/
gen_update_nip(ctx, ctx->nip);
- gen_op_store_msr();
+ tcg_gen_helper_0_1(do_store_msr, cpu_T[0]);
/* Must stop the translation as machine state (may have) changed */
/* Note that mtmsr is not always defined as context-synchronizing */
ctx->exception = POWERPC_EXCP_STOP;
@@ -3385,10 +3405,10 @@
gen_update_nip(ctx, ctx->nip);
#if defined(TARGET_PPC64)
if (!ctx->sf_mode)
- gen_op_store_msr_32();
+ tcg_gen_helper_0_1(do_store_msr_32, cpu_T[0]);
else
#endif
- gen_op_store_msr();
+ tcg_gen_helper_0_1(do_store_msr, cpu_T[0]);
/* Must stop the translation as machine state (may have) changed */
/* Note that mtmsrd is not always defined as context-synchronizing */
ctx->exception = POWERPC_EXCP_STOP;
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [5083] PPC: Switch a few instructions to TCG
2008-08-24 19:05 [Qemu-devel] [5083] PPC: Switch a few instructions to TCG Aurelien Jarno
@ 2008-08-24 22:08 ` J. Mayer
2008-08-24 23:17 ` Aurelien Jarno
2008-08-24 23:27 ` Andreas Färber
0 siblings, 2 replies; 7+ messages in thread
From: J. Mayer @ 2008-08-24 22:08 UTC (permalink / raw)
To: qemu-devel
On Sun, 2008-08-24 at 19:05 +0000, Aurelien Jarno wrote:
> Revision: 5083
> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5083
> Author: aurel32
> Date: 2008-08-24 19:05:35 +0000 (Sun, 24 Aug 2008)
>
> Log Message:
> -----------
> PPC: Switch a few instructions to TCG
It seems like you forgot to consider that I might be working on this
subject, as I announced here last month and care if you break my work in
any way.
Then, you also "forgot" to wait for the fixes needed to address
regression that have been introduced by previous inconsidered commits in
PowerPC emulation: I also said that this was the _first thing_ to be
done before anything else in PowePC code.
Then, I can be sure that you "forgot" to test if your patch breaks any
PowerPC targets, as some do not run now...
Last but not least, you also "forgot" to submit your patch, wait for
comments, reviews, tests...
All this is unacceptable; furthermore, just giving a quick look, there
seem to be many things that should never have been commited as-is and
have to be fixed before this set of could eventually be merged.
Please revert_ now_.
Thanks by advance.
--
J. Mayer <l_indien@magic.fr>
Never organized
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [5083] PPC: Switch a few instructions to TCG
2008-08-24 22:08 ` J. Mayer
@ 2008-08-24 23:17 ` Aurelien Jarno
2008-08-24 23:27 ` Andreas Färber
1 sibling, 0 replies; 7+ messages in thread
From: Aurelien Jarno @ 2008-08-24 23:17 UTC (permalink / raw)
To: qemu-devel
On Mon, Aug 25, 2008 at 12:08:17AM +0200, J. Mayer wrote:
> On Sun, 2008-08-24 at 19:05 +0000, Aurelien Jarno wrote:
> > Revision: 5083
> > http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5083
> > Author: aurel32
> > Date: 2008-08-24 19:05:35 +0000 (Sun, 24 Aug 2008)
> >
> > Log Message:
> > -----------
> > PPC: Switch a few instructions to TCG
>
> It seems like you forgot to consider that I might be working on this
> subject, as I announced here last month and care if you break my work in
> any way.
> Then, you also "forgot" to wait for the fixes needed to address
> regression that have been introduced by previous inconsidered commits in
> PowerPC emulation: I also said that this was the _first thing_ to be
> done before anything else in PowePC code.
> Then, I can be sure that you "forgot" to test if your patch breaks any
> PowerPC targets, as some do not run now...
> Last but not least, you also "forgot" to submit your patch, wait for
> comments, reviews, tests...
>
> All this is unacceptable; furthermore, just giving a quick look, there
> seem to be many things that should never have been commited as-is and
> have to be fixed before this set of could eventually be merged.
>
> Please revert_ now_.
Sorry, I have probably missed your email, reverted.
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32@debian.org | aurelien@aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [5083] PPC: Switch a few instructions to TCG
2008-08-24 22:08 ` J. Mayer
2008-08-24 23:17 ` Aurelien Jarno
@ 2008-08-24 23:27 ` Andreas Färber
2008-08-25 22:25 ` J. Mayer
1 sibling, 1 reply; 7+ messages in thread
From: Andreas Färber @ 2008-08-24 23:27 UTC (permalink / raw)
To: qemu-devel
Am 25.08.2008 um 00:08 schrieb J. Mayer:
> On Sun, 2008-08-24 at 19:05 +0000, Aurelien Jarno wrote:
>> Revision: 5083
>> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5083
>> Author: aurel32
>> Date: 2008-08-24 19:05:35 +0000 (Sun, 24 Aug 2008)
>>
>> Log Message:
>> -----------
>> PPC: Switch a few instructions to TCG
>
> It seems like you forgot to consider that I might be working on this
> subject, as I announced here last month and care if you break my
> work in
> any way.
> Then, you also "forgot" to wait for the fixes needed to address
> regression that have been introduced by previous inconsidered
> commits in
> PowerPC emulation: I also said that this was the _first thing_ to be
> done before anything else in PowePC code.
> Then, I can be sure that you "forgot" to test if your patch breaks any
> PowerPC targets, as some do not run now...
Excuse me, I have not been able to run Linux on a single ppc target
within the last _year_. Something is severely broken all that time,
not just now.
> Last but not least, you also "forgot" to submit your patch, wait for
> comments, reviews, tests...
>
> All this is unacceptable;
As reported by René some months ago, you submitted a binary OHW update
(r3309) but neither updated the source on your website nor QEMU's diff
against it. Probably you just forgot, but don't be so harsh to others
then. It's good to see that someone still cares about the PowerPC
targets at all! Apart from Laurent, no one cared to review his OHW
patch since then (not even complaining that it's whitespace-damaged).
Nor did anyone complain that the PowerPC 'patch' by Salvatore was no
patch at all but a gzipped tarball of apparently modified 0.9.1 source
files - not yet reviewed at all this month.
Last month you actually said you were *planning* to port Alpha and
PowerPC, with Alpha first, but had no time and reference hardware -
your last commit is over half a year ago, so since there were no Alpha
commits no one would expect you to work on PowerPC already given your
statement. Most conversions to TCG (including the original
introduction) were done without testing periods, step-by-step on
trunk. Please don't fight over who's code gets committed, rather
combine your efforts to get ppc usable again. If you'd post a link to
your branch with work-in-progress like malc does that might help keep
collisions low.
Thanks,
Andreas
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [5083] PPC: Switch a few instructions to TCG
2008-08-24 23:27 ` Andreas Färber
@ 2008-08-25 22:25 ` J. Mayer
2008-08-26 1:22 ` Johannes Schindelin
2008-08-27 17:33 ` Andreas Färber
0 siblings, 2 replies; 7+ messages in thread
From: J. Mayer @ 2008-08-25 22:25 UTC (permalink / raw)
To: qemu-devel
On Mon, 2008-08-25 at 01:27 +0200, Andreas Färber wrote:
> Am 25.08.2008 um 00:08 schrieb J. Mayer:
>
> > On Sun, 2008-08-24 at 19:05 +0000, Aurelien Jarno wrote:
> >> Revision: 5083
> >> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5083
> >> Author: aurel32
> >> Date: 2008-08-24 19:05:35 +0000 (Sun, 24 Aug 2008)
> >>
> >> Log Message:
> >> -----------
> >> PPC: Switch a few instructions to TCG
> >
> > It seems like you forgot to consider that I might be working on this
> > subject, as I announced here last month and care if you break my
> > work in
> > any way.
> > Then, you also "forgot" to wait for the fixes needed to address
> > regression that have been introduced by previous inconsidered
> > commits in
> > PowerPC emulation: I also said that this was the _first thing_ to be
> > done before anything else in PowePC code.
> > Then, I can be sure that you "forgot" to test if your patch breaks any
> > PowerPC targets, as some do not run now...
>
> Excuse me, I have not been able to run Linux on a single ppc target
> within the last _year_. Something is severely broken all that time,
> not just now.
>
> > Last but not least, you also "forgot" to submit your patch, wait for
> > comments, reviews, tests...
> >
> > All this is unacceptable;
>
> As reported by René some months ago, you submitted a binary OHW update
> (r3309) but neither updated the source on your website nor QEMU's diff
> against it. Probably you just forgot, but don't be so harsh to others
> then. It's good to see that someone still cares about the PowerPC
> targets at all! Apart from Laurent, no one cared to review his OHW
> patch since then (not even complaining that it's whitespace-damaged).
> Nor did anyone complain that the PowerPC 'patch' by Salvatore was no
> patch at all but a gzipped tarball of apparently modified 0.9.1 source
> files - not yet reviewed at all this month.
>
> Last month you actually said you were *planning* to port Alpha and
> PowerPC, with Alpha first, but had no time and reference hardware -
> your last commit is over half a year ago, so since there were no Alpha
> commits no one would expect you to work on PowerPC already given your
> statement. Most conversions to TCG (including the original
> introduction) were done without testing periods, step-by-step on
> trunk. Please don't fight over who's code gets committed, rather
> combine your efforts to get ppc usable again. If you'd post a link to
> your branch with work-in-progress like malc does that might help keep
> collisions low.
>
> Thanks,
> Andreas
On Mon, 2008-08-25 at 12:33 +0200, Johannes Schindelin wrote:
> It seems you are in exactly the same self-destructive,
insulting-others
> phase as I was a few weeks ago.
>
> Please keep in mind: not only have you not notified anybody of your
> progress, thereby _asking_ for somebody else to step in, but you also
> leave a public record of being an asshole. And the worst: you do not
help
> your soul to get better.
>
> In this situation, it helped me to consult someone. Maybe this would
help
> you, too.
>
> Ciao,
> Dscho "who has been there, and has done that"
Sorry if I only give one answer for everybody. And sorry it might be
long and sounds like unnedeed noise.
I don't think I've been insulting anyone here or missing respect to
anyone.
Just as a reminder, everyone who has commit writes in Qemu repository
agreed, to be accepted as a commiter, to respect one and only one rule:
one can do whatever he wants in the code he take the responsability to
maintain but shall never commit in any other place without the explicit
agreement of all maintainers that might be affected by the changes.
Then, I feel perfectly right not being happy when random untested
patches are commited in this code.
And to be completelly honnest, my deep thought is that someone that is
not able to respect this simple rule should never have write access to
any repository.
The argument "I have not able to run the PowerPC target for at least a
year" is fallacious, for at least 2 reasons. The first one is that there
was successes reported to run those target during this time (and I've
also been able to do so). I can admit I did not check the current
repository and I know that embedded targets have already been broken;
but if it is broken, and this is the second reason, the only thing to do
is repair _before_ anything else can happen. Saying "it's broken" as an
excuse to commit untested patches is never acceptable; it seems to me
that anyone who do a commits is responsible and supposed to get sure
that he won't break anything, then be ready to repair if it does, depite
the care that has been taken to test as many cases as possible.
Then, I don't understand why some are talking about OHW here, which
seems to be completelly out of the scope of Qemu development. Let me be
more precise. First, the changes that is being talked about was
requested by Qemu users and at that time I did explain here, on this
list, what was in the patch I did and why I won't release a new version
of OHW just for this patch (just relaxing some IDE status checks to
avoid error cases triggered by some Qemu IDE implementation changes).
Second, OHW is an independant project. It is provided as a helper for
some PowerPC targets, even not for all, it has been successfully
replaced by some proprietary firmwares (not only once) and everyone is
free to use any other firmware he wants to boot a PowerPC target (and I
know some do) or even fix the emulator so firmware from mass-market
machines would run on Qemu (which is not far from being possible).
Now a simple question: if Qemu developpers really think I'm a "asshole",
if all I do here is just insulting other developpers, and/or am not
able to maintain the PowerPC code, then I don't understand why they
never asked the project leaders to bannish me and looked for someone
else who would fit the job ?
Finally, the only thing I feel you all are right is that I never talk a
lot about what's going on in my work here and even less commit any of my
patches. Then I understand that most of you consider the PowerPC targets
as unmaintained.
For this reason, also to stop poluting the list, and to stop being the
"asshole" who prevents anyone of you to improve Qemu the way you want, I
now resign.
I will just do one last commit, in order to remove my name from the
maintainer list; then I won't disturb you anymore again.
Please then cancel my commit rights and remove my mail from the mailing
list.
As a conclusion, everyone is free to do all changes he wants in PowerPC
& Alpha code, which are now officially unmaintained.
Aurelien, you might now want to push your patches again, as all mines
now have a garbage status...
Thanks for this great project, have good luck and a lot of fun.
PS: and please don't worry, whatever one might think, I feel absolutelly
OK with my soul and conscience.
(and please, don't reply to this, you would just increase the pollution
level, what is never needed here, and you can be sure I won't reply
anymore, nor here nor by private mail).
--
J. Mayer <l_indien@magic.fr>
Never organized
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [5083] PPC: Switch a few instructions to TCG
2008-08-25 22:25 ` J. Mayer
@ 2008-08-26 1:22 ` Johannes Schindelin
2008-08-27 17:33 ` Andreas Färber
1 sibling, 0 replies; 7+ messages in thread
From: Johannes Schindelin @ 2008-08-26 1:22 UTC (permalink / raw)
To: qemu-devel
Hi,
On Tue, 26 Aug 2008, J. Mayer wrote:
> On Mon, 2008-08-25 at 12:33 +0200, Johannes Schindelin wrote:
>
> > It seems you are in exactly the same self-destructive,
> > insulting-others phase as I was a few weeks ago.
> >
> > Please keep in mind: not only have you not notified anybody of your
> > progress, thereby _asking_ for somebody else to step in, but you also
> > leave a public record of being an asshole.
FWIW I meant this to be private. And that was _not_ to protect _me_.
I tried to help Jocelyn in seeing how his emails may very well be
perceived by others.
Obviously I failed.
Oh, well,
Dscho
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [5083] PPC: Switch a few instructions to TCG
2008-08-25 22:25 ` J. Mayer
2008-08-26 1:22 ` Johannes Schindelin
@ 2008-08-27 17:33 ` Andreas Färber
1 sibling, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2008-08-27 17:33 UTC (permalink / raw)
To: qemu-devel
Am 26.08.2008 um 00:25 schrieb J. Mayer:
<snip>
The sole reason I replied to your original message was that I did in
fact perceive it as inappropriate and very rude towards Aurelien.
I did not argue about your code or activity, nor did I ask you to
resign, I just called on you to be a little more reasonable than this
don't-touch-my-code attitude and resulting noise. In doing so, I tried
to show you some valid reasons why someone would commit in "your" code
in an Open Source project, starting with that you did not write to the
list what you supposedly did (maybe a language problem).
Aurelien could have posted a patch first, yes, but still that is no
reason for such an eruption of anger. Instead you could've stated the
pure facts, mentioning what exactly conflicted, and tried to cooperate
on fixing it instead of commanding your fellow committer to withdraw
any changes of his just because they're in "your" code.
And I am not aware of any insult from my side.
Concerning OHW, it has a lot to do with the ppc targets because ppc-
softmmu and ppc64-softmmu both use it exclusively, for all machine
variations I tried. QEMU does not ship any other ppc ROM. No one has
yet reported success in replacing it with any other OpenFirmware
implementation to my knowledge, Laurent seemed closest recently. If
someone somewhere has supposedly succeeded replacing OHW somehow, I
ask you, does knowing that really help users of QEMU?
CD/DVD booting is broken, making it impossible to set up a new ppc VM.
There is no downloadable test image for ppc to check, so I recently
tried a Haiku/ppc image and it didn't boot either. IDE status
mismatches for both, despite the relaxed binary-only checks which your
commit message does not describe. Earlier, pre-TCG, I reported getting
to a yaboot prompt but it errored out shortly after with lots of
apparently OHW related errors. So even if OHW is conceptually a
different project, then, like for Bochs BIOS, QEMU relies on it
working and needs a usable version out-of-tree or a diff against the
out-of-tree version to apply the necessary fixes for QEMU.
In an Open Source world I can't expect you to respond to my personal
problems but since I wasn't doing anything fancy I consider it a
general problem (it affected the released versions of Q using QEMU
0.9.0 and 0.9.1, and Fedora 9's KVM, for instance, and there was/is no
known workaround). If you and anyone else have been happily running
ppc-softmmu all along then you have not replied that to my messages
telling me and others how you're doing it, nor replied whether the
Linux images I had referenced work for you. I have mainly tried OSX/
ppc and Solaris/amd64 hosts (also Linux/i386 once to make sure) and
Debian Etch (40r0, 40r2), Fedora 9 and OpenSUSE 11.0 .iso files, most
of which were tested to work on real hardware when written to media.
Anyway, that never was a justification for or against committing
things. It just proves it ridiculous blaming Aurelien for supposedly
breaking the target with those two TCG commits. Whether he introduced
a regression or not, it was broken before.
Concerning the order of fixing things, you are right that converting
dyngen code 1:1 to TCG would carry over any lingering bugs. On the
other hand, TCG would allow testing on more platforms, likely leading
to discovery of such bugs at some point.
Whatever you choose to do, I wish you good luck with your projects and
a little more placidness.
Salutations,
Andreas
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-08-27 17:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-24 19:05 [Qemu-devel] [5083] PPC: Switch a few instructions to TCG Aurelien Jarno
2008-08-24 22:08 ` J. Mayer
2008-08-24 23:17 ` Aurelien Jarno
2008-08-24 23:27 ` Andreas Färber
2008-08-25 22:25 ` J. Mayer
2008-08-26 1:22 ` Johannes Schindelin
2008-08-27 17:33 ` Andreas Färber
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).