All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: ESP busted
@ 2006-03-09 21:16 David S. Miller
  2006-03-09 21:19 ` Josh Grebe
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: David S. Miller @ 2006-03-09 21:16 UTC (permalink / raw)
  To: sparclinux

From: Josh Grebe <josh@brokedown.net>
Date: Thu, 09 Mar 2006 07:22:11 -0600

> Its 150k, so I've put it up at:
> http://dev.gentoo.org/~squash/esp.s

This is really bad, GCC isn't inlining anything.

So the deepest IRQ handler path eats up ~1152 bytes of stack space and
that's before we call into the scsi layer to indicate command
completion.

With gcc-4.0.x most of the IRQ path gets inlined even with the -Os we
are giving to GCC now.

What gcc version are you using again?  I'll try to reproduce here and
try to add some inline directives to try and cure this.

Thanks.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ESP busted
  2006-03-09 21:16 ESP busted David S. Miller
@ 2006-03-09 21:19 ` Josh Grebe
  2006-03-09 21:27 ` David S. Miller
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Josh Grebe @ 2006-03-09 21:19 UTC (permalink / raw)
  To: sparclinux

[-- Attachment #1: Type: text/plain, Size: 562 bytes --]


David S. Miller wrote:
> What gcc version are you using again?  I'll try to reproduce here and
> try to add some inline directives to try and cure this.

Hi Dave,

Reading specs from /usr/lib/gcc-lib/sparc64-unknown-linux-gnu/3.3.5/specs
Configured with:
/var/tmp/portage/gcc-sparc64-3.3.5/work/gcc-sparc64-3.3.5/configure
--prefix=/usr --disable-shared --disable-multilib
--target=sparc64-unknown-linux-gnu --enable-languages=c --enable-threads=single
--host=sparc-unknown-linux-gnu
Thread model: single
gcc version 3.3.5  (Gentoo Linux 3.3.5)


Thanks,

Josh

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ESP busted
  2006-03-09 21:16 ESP busted David S. Miller
  2006-03-09 21:19 ` Josh Grebe
@ 2006-03-09 21:27 ` David S. Miller
  2006-03-09 21:40 ` David S. Miller
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: David S. Miller @ 2006-03-09 21:27 UTC (permalink / raw)
  To: sparclinux

From: Josh Grebe <josh@brokedown.net>
Date: Thu, 09 Mar 2006 15:19:55 -0600

> Reading specs from /usr/lib/gcc-lib/sparc64-unknown-linux-gnu/3.3.5/specs
> Configured with:
> /var/tmp/portage/gcc-sparc64-3.3.5/work/gcc-sparc64-3.3.5/configure
> --prefix=/usr --disable-shared --disable-multilib
> --target=sparc64-unknown-linux-gnu --enable-languages=c --enable-threads=single
> --host=sparc-unknown-linux-gnu
> Thread model: single
> gcc version 3.3.5  (Gentoo Linux 3.3.5)

Ok, I tested and could not reproduce that inlining behavior with
gcc-3.4.x: gcc-3.4 (GCC) 3.4.6 20060122 (prerelease) (Debian 3.4.5-2)

But I definitely can reproduce it with gcc-3.3.x:
gcc-3.3 (GCC) 3.3.6 (Debian 1:3.3.6-10)

I'll see what I can do...

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ESP busted
  2006-03-09 21:16 ESP busted David S. Miller
  2006-03-09 21:19 ` Josh Grebe
  2006-03-09 21:27 ` David S. Miller
@ 2006-03-09 21:40 ` David S. Miller
  2006-03-12 21:09 ` Jason Wever
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: David S. Miller @ 2006-03-09 21:40 UTC (permalink / raw)
  To: sparclinux

From: "David S. Miller" <davem@davemloft.net>
Date: Thu, 09 Mar 2006 13:27:07 -0800 (PST)

> But I definitely can reproduce it with gcc-3.3.x:
> gcc-3.3 (GCC) 3.3.6 (Debian 1:3.3.6-10)
> 
> I'll see what I can do...

Josh, new patch, let me know if this makes ESP work
better for you.

I'm a little concerned, because this means gcc-3.3.x
is doing this lack of inlining for the entire sparc64
kernel, not just the ESP driver.

We might have to add some -finline-limit options back
onto the CFLAGS for gcc-3.3.x and previous on sparc64.

--- drivers/scsi/esp.c.~1~	2006-03-08 20:44:46.000000000 -0800
+++ drivers/scsi/esp.c	2006-03-09 13:36:58.000000000 -0800
@@ -1433,7 +1433,7 @@
 	return esp_host_info(esp, buffer, offset, length);
 }
 
-static void esp_get_dmabufs(struct esp *esp, struct scsi_cmnd *sp)
+static inline void esp_get_dmabufs(struct esp *esp, struct scsi_cmnd *sp)
 {
 	if (sp->use_sg = 0) {
 		sp->SCp.this_residual = sp->request_bufflen;
@@ -1458,7 +1458,7 @@
 	}
 }
 
-static void esp_release_dmabufs(struct esp *esp, struct scsi_cmnd *sp)
+static inline void esp_release_dmabufs(struct esp *esp, struct scsi_cmnd *sp)
 {
 	if (sp->use_sg) {
 		sbus_unmap_sg(esp->sdev, sp->buffer, sp->use_sg,
@@ -1471,7 +1471,7 @@
 	}
 }
 
-static void esp_restore_pointers(struct esp *esp, struct scsi_cmnd *sp)
+static inline void esp_restore_pointers(struct esp *esp, struct scsi_cmnd *sp)
 {
 	struct esp_pointers *ep = &esp->data_pointers[sp->device->id];
 
@@ -1481,7 +1481,7 @@
 	sp->SCp.buffers_residual = ep->saved_buffers_residual;
 }
 
-static void esp_save_pointers(struct esp *esp, struct scsi_cmnd *sp)
+static inline void esp_save_pointers(struct esp *esp, struct scsi_cmnd *sp)
 {
 	struct esp_pointers *ep = &esp->data_pointers[sp->device->id];
 
@@ -2013,7 +2013,7 @@
  * is to clean out the command queues and begin re-execution
  * of SCSI commands once more.
  */
-static int esp_finish_reset(struct esp *esp)
+static inline int esp_finish_reset(struct esp *esp)
 {
 	struct scsi_cmnd *sp = esp->current_SC;
 
@@ -2050,7 +2050,7 @@
 	return do_intr_end;
 }
 
-static int esp_do_resetbus(struct esp *esp)
+static inline int esp_do_resetbus(struct esp *esp)
 {
 	ESPLOG(("esp%d: Resetting scsi bus\n", esp->esp_id));
 	esp->resetting_bus = 1;
@@ -2078,7 +2078,7 @@
 }
 
 /* Internal ESP done function. */
-static void esp_done(struct esp *esp, int error)
+static inline void esp_done(struct esp *esp, int error)
 {
 	struct scsi_cmnd *done_SC = esp->current_SC;
 
@@ -2105,7 +2105,6 @@
 static int esp_do_msgin(struct esp *esp);
 static int esp_do_msgindone(struct esp *esp);
 static int esp_do_msgout(struct esp *esp);
-static int esp_do_cmdbegin(struct esp *esp);
 
 #define sreg_datainp(__sreg)  (((__sreg) & ESP_STAT_PMASK) = ESP_DIP)
 #define sreg_dataoutp(__sreg) (((__sreg) & ESP_STAT_PMASK) = ESP_DOP)
@@ -2803,7 +2802,7 @@
  * a tape, we don't want to go into a loop re-negotiating
  * synchronous capabilities over and over.
  */
-static int esp_should_clear_sync(struct scsi_cmnd *sp)
+static inline int esp_should_clear_sync(struct scsi_cmnd *sp)
 {
 	u8 cmd1 = sp->cmnd[0];
 	u8 cmd2 = sp->data_cmnd[0];
@@ -3109,7 +3108,7 @@
 	}
 }
 
-static int esp_enter_status(struct esp *esp)
+static inline int esp_enter_status(struct esp *esp)
 {
 	u8 thecmd = ESP_CMD_ICCSEQ;
 
@@ -3178,44 +3177,63 @@
 	return do_intr_end;
 }
 
-static int esp_enter_msgout(struct esp *esp)
+static inline int esp_do_cmdbegin(struct esp *esp)
+{
+	struct scsi_cmnd *SCptr = esp->current_SC;
+
+	esp_advance_phase(SCptr, in_cmdend);
+	if (esp->erev = fashme) {
+		u32 tmp = sbus_readl(esp->dregs + DMA_CSR);
+		int i;
+
+		for (i = 0; i < esp->esp_scmdleft; i++)
+			esp->esp_command[i] = *esp->esp_scmdp++;
+		esp->esp_scmdleft = 0;
+		esp_cmd(esp, ESP_CMD_FLUSH);
+		esp_setcount(esp->eregs, i, 1);
+		esp_cmd(esp, (ESP_CMD_DMA | ESP_CMD_TI));
+		tmp |= (DMA_SCSI_DISAB | DMA_ENABLE);
+		tmp &= ~(DMA_ST_WRITE);
+		sbus_writel(i, esp->dregs + DMA_COUNT);
+		sbus_writel(esp->esp_command_dvma, esp->dregs + DMA_ADDR);
+		sbus_writel(tmp, esp->dregs + DMA_CSR);
+	} else {
+		u8 tmp;
+
+		esp_cmd(esp, ESP_CMD_FLUSH);
+		tmp = *esp->esp_scmdp++;
+		esp->esp_scmdleft--;
+		sbus_writeb(tmp, esp->eregs + ESP_FDATA);
+		esp_cmd(esp, ESP_CMD_TI);
+	}
+	return do_intr_end;
+}
+
+static inline int esp_enter_msgout(struct esp *esp)
 {
 	esp_advance_phase(esp->current_SC, in_msgout);
 	return esp_do_msgout(esp);
 }
 
-static int esp_enter_msgin(struct esp *esp)
+static inline int esp_enter_msgin(struct esp *esp)
 {
 	esp_advance_phase(esp->current_SC, in_msgin);
 	return esp_do_msgin(esp);
 }
 
-static int esp_enter_cmd(struct esp *esp)
+static inline int esp_enter_cmd(struct esp *esp)
 {
 	esp_advance_phase(esp->current_SC, in_cmdbegin);
 	return esp_do_cmdbegin(esp);
 }
 
-static int esp_enter_badphase(struct esp *esp)
+static inline int esp_enter_badphase(struct esp *esp)
 {
 	ESPLOG(("esp%d: Bizarre bus phase %2x.\n", esp->esp_id,
 		esp->sreg & ESP_STAT_PMASK));
 	return do_reset_bus;
 }
 
-typedef int (*espfunc_t)(struct esp *);
-
-static espfunc_t phase_vector[] = {
-	esp_do_data,		/* ESP_DOP */
-	esp_do_data,		/* ESP_DIP */
-	esp_enter_cmd,		/* ESP_CMDP */
-	esp_enter_status,	/* ESP_STATP */
-	esp_enter_badphase,	/* ESP_STAT_PMSG */
-	esp_enter_badphase,	/* ESP_STAT_PMSG | ESP_STAT_PIO */
-	esp_enter_msgout,	/* ESP_MOP */
-	esp_enter_msgin,	/* ESP_MIP */
-};
-
 /* The target has control of the bus and we have to see where it has
  * taken us.
  */
@@ -3223,7 +3241,25 @@
 {
 	if ((esp->ireg & ESP_INTR_DC) != 0)
 		return esp_disconnect_amidst_phases(esp);
-	return phase_vector[esp->sreg & ESP_STAT_PMASK](esp);
+
+	switch (esp->sreg & ESP_STAT_PMASK) {
+	case ESP_DOP:
+		return esp_do_data(esp);
+	case ESP_DIP:
+		return esp_do_data(esp);
+	case ESP_CMDP:
+		return esp_enter_cmd(esp);
+	case ESP_STATP:
+		return esp_enter_status(esp);
+	case ESP_STAT_PMSG:
+	case ESP_STAT_PMSG | ESP_STAT_PIO:
+	default:
+		return esp_enter_badphase(esp);
+	case ESP_MOP:
+		return esp_enter_msgout(esp);
+	case ESP_MIP:
+		return esp_enter_msgin(esp);
+	};
 }
 
 /* First interrupt after exec'ing a cmd comes here. */
@@ -3482,7 +3518,7 @@
 }
 
 /* Continue reading bytes for msgin phase. */
-static int esp_do_msgincont(struct esp *esp)
+static inline int esp_do_msgincont(struct esp *esp)
 {
 	if (esp->ireg & ESP_INTR_BSERV) {
 		/* in the right phase too? */
@@ -3584,9 +3620,9 @@
  * the SCSI2 standard specifically recommends against targets doing
  * this because so many initiators cannot cope with this occurring.
  */
-static int target_with_ants_in_pants(struct esp *esp,
-				     struct scsi_cmnd *SCptr,
-				     struct esp_device *esp_dev)
+static inline int target_with_ants_in_pants(struct esp *esp,
+					    struct scsi_cmnd *SCptr,
+					    struct esp_device *esp_dev)
 {
 	if (esp_dev->sync || SCptr->device->borken) {
 		/* sorry, no can do */
@@ -3905,39 +3941,7 @@
 	return do_intr_end;
 }
 
-static int esp_do_cmdbegin(struct esp *esp)
-{
-	struct scsi_cmnd *SCptr = esp->current_SC;
-
-	esp_advance_phase(SCptr, in_cmdend);
-	if (esp->erev = fashme) {
-		u32 tmp = sbus_readl(esp->dregs + DMA_CSR);
-		int i;
-
-		for (i = 0; i < esp->esp_scmdleft; i++)
-			esp->esp_command[i] = *esp->esp_scmdp++;
-		esp->esp_scmdleft = 0;
-		esp_cmd(esp, ESP_CMD_FLUSH);
-		esp_setcount(esp->eregs, i, 1);
-		esp_cmd(esp, (ESP_CMD_DMA | ESP_CMD_TI));
-		tmp |= (DMA_SCSI_DISAB | DMA_ENABLE);
-		tmp &= ~(DMA_ST_WRITE);
-		sbus_writel(i, esp->dregs + DMA_COUNT);
-		sbus_writel(esp->esp_command_dvma, esp->dregs + DMA_ADDR);
-		sbus_writel(tmp, esp->dregs + DMA_CSR);
-	} else {
-		u8 tmp;
-
-		esp_cmd(esp, ESP_CMD_FLUSH);
-		tmp = *esp->esp_scmdp++;
-		esp->esp_scmdleft--;
-		sbus_writeb(tmp, esp->eregs + ESP_FDATA);
-		esp_cmd(esp, ESP_CMD_TI);
-	}
-	return do_intr_end;
-}
-
-static int esp_do_cmddone(struct esp *esp)
+static inline int esp_do_cmddone(struct esp *esp)
 {
 	if (esp->erev = fashme)
 		dma_invalidate(esp);
@@ -4036,7 +4040,7 @@
 	return do_intr_end;
 }
 
-static int esp_do_msgoutdone(struct esp *esp)
+static inline int esp_do_msgoutdone(struct esp *esp)
 {
 	if (esp->msgout_len > 1) {
 		/* XXX HME/FAS ATN deassert workaround required,
@@ -4099,34 +4103,15 @@
 	return esp_do_phase_determine(esp);
 }
 
-static int esp_bus_unexpected(struct esp *esp)
+static inline int esp_bus_unexpected(struct esp *esp)
 {
 	ESPLOG(("esp%d: command in weird state %2x\n",
 		esp->esp_id, esp->current_SC->SCp.phase));
 	return do_reset_bus;
 }
 
-static espfunc_t bus_vector[] = {
-	esp_do_data_finale,
-	esp_do_data_finale,
-	esp_bus_unexpected,
-	esp_do_msgin,
-	esp_do_msgincont,
-	esp_do_msgindone,
-	esp_do_msgout,
-	esp_do_msgoutdone,
-	esp_do_cmdbegin,
-	esp_do_cmddone,
-	esp_do_status,
-	esp_do_freebus,
-	esp_do_phase_determine,
-	esp_bus_unexpected,
-	esp_bus_unexpected,
-	esp_bus_unexpected,
-};
-
 /* This is the second tier in our dual-level SCSI state machine. */
-static int esp_work_bus(struct esp *esp)
+static inline int esp_work_bus(struct esp *esp)
 {
 	struct scsi_cmnd *SCptr = esp->current_SC;
 	unsigned int phase;
@@ -4137,24 +4122,45 @@
 		return esp_do_reconnect(esp);
 	}
 	phase = SCptr->SCp.phase;
-	if ((phase & 0xf0) = in_phases_mask)
-		return bus_vector[(phase & 0x0f)](esp);
-	else if ((phase & 0xf0) = in_slct_mask)
+	if ((phase & 0xf0) = in_phases_mask) {
+		switch (phase) {
+		case in_datain:
+			return esp_do_data_finale(esp);
+		case in_dataout:
+			return esp_do_data_finale(esp);
+		case in_data_done:
+			return esp_bus_unexpected(esp);
+		case in_msgin:
+			return esp_do_msgin(esp);
+		case in_msgincont:
+			return esp_do_msgincont(esp);
+		case in_msgindone:
+			return esp_do_msgindone(esp);
+		case in_msgout:
+			return esp_do_msgout(esp);
+		case in_msgoutdone:
+			return esp_do_msgoutdone(esp);
+		case in_cmdbegin:
+			return esp_do_cmdbegin(esp);
+		case in_cmdend:
+			return esp_do_cmddone(esp);
+		case in_status:
+			return esp_do_status(esp);
+		case in_freeing:
+			return esp_do_freebus(esp);
+		case in_the_dark:
+			return esp_do_phase_determine(esp);
+		default:
+			return esp_bus_unexpected(esp);
+		};
+	} else if ((phase & 0xf0) = in_slct_mask)
 		return esp_select_complete(esp);
 	else
 		return esp_bus_unexpected(esp);
 }
 
-static espfunc_t isvc_vector[] = {
-	NULL,
-	esp_do_phase_determine,
-	esp_do_resetbus,
-	esp_finish_reset,
-	esp_work_bus
-};
-
 /* Main interrupt handler for an esp adapter. */
-static void esp_handle(struct esp *esp)
+static inline void esp_handle(struct esp *esp)
 {
 	struct scsi_cmnd *SCptr;
 	int what_next = do_intr_end;
@@ -4323,15 +4329,27 @@
 	/* This is tier-one in our dual level SCSI state machine. */
 state_machine:
 	while (what_next != do_intr_end) {
-		if (what_next >= do_phase_determine &&
-		    what_next < do_intr_end) {
-			what_next = isvc_vector[what_next](esp);
-		} else {
+		switch (what_next) {
+		case do_phase_determine:
+			what_next = esp_do_phase_determine(esp);
+			break;
+		case do_reset_bus:
+			what_next = esp_do_resetbus(esp);
+			break;
+		case do_reset_complete:
+			what_next = esp_finish_reset(esp);
+			break;
+		case do_work_bus:
+			what_next = esp_work_bus(esp);
+			break;
+
+		default:
 			/* state is completely lost ;-( */
-			ESPLOG(("esp%d: interrupt engine loses state, resetting bus\n",
-				esp->esp_id));
+			ESPLOG(("esp%d: interrupt engine loses state, "
+				"resetting bus\n", esp->esp_id));
 			what_next = do_reset_bus;
-		}
+			break;
+		};
 	}
 }
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ESP busted
  2006-03-09 21:16 ESP busted David S. Miller
                   ` (2 preceding siblings ...)
  2006-03-09 21:40 ` David S. Miller
@ 2006-03-12 21:09 ` Jason Wever
  2006-03-12 21:52 ` David S. Miller
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Jason Wever @ 2006-03-12 21:09 UTC (permalink / raw)
  To: sparclinux

[-- Attachment #1: Type: text/plain, Size: 741 bytes --]

On Thu, 09 Mar 2006 13:40:39 -0800 (PST)
"David S. Miller" <davem@davemloft.net> wrote:

> Josh, new patch, let me know if this makes ESP work
> better for you.
> 
> I'm a little concerned, because this means gcc-3.3.x
> is doing this lack of inlining for the entire sparc64
> kernel, not just the ESP driver.
> 
> We might have to add some -finline-limit options back
> onto the CFLAGS for gcc-3.3.x and previous on sparc64.

Assuming this sub-thread was meant to be directed at me :)

OK, just got time to test this.  Using gcc-3.3.5 and your patch
against 2.6.16-rc6, everything is booting fine on an Ultra 1.  Anything
you'd like to see from the compiled output?

Cheers,
-- 
Jason Wever
Gentoo/Sparc Team Co-Lead

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ESP busted
  2006-03-09 21:16 ESP busted David S. Miller
                   ` (3 preceding siblings ...)
  2006-03-12 21:09 ` Jason Wever
@ 2006-03-12 21:52 ` David S. Miller
  2006-03-13  3:14 ` Jason Wever
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: David S. Miller @ 2006-03-12 21:52 UTC (permalink / raw)
  To: sparclinux

From: Jason Wever <weeve@gentoo.org>
Date: Sun, 12 Mar 2006 14:09:43 -0700

> OK, just got time to test this.  Using gcc-3.3.5 and your patch
> against 2.6.16-rc6, everything is booting fine on an Ultra 1.
> Anything you'd like to see from the compiled output?

And 2.6.16-rc6 without the patch is definitely broken
right?  Can you verify this?  I want to make sure I'm
fixing something.

Note that this kind of explains why the IRQ stacks stuff,
which I hope to get back to, helps various folks to one
degress or another.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ESP busted
  2006-03-09 21:16 ESP busted David S. Miller
                   ` (4 preceding siblings ...)
  2006-03-12 21:52 ` David S. Miller
@ 2006-03-13  3:14 ` Jason Wever
  2006-03-13  4:30 ` David S. Miller
  2006-03-13  4:59 ` Jason Wever
  7 siblings, 0 replies; 9+ messages in thread
From: Jason Wever @ 2006-03-13  3:14 UTC (permalink / raw)
  To: sparclinux

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sun, 12 Mar 2006, David S. Miller wrote:

> From: Jason Wever <weeve@gentoo.org>
> Date: Sun, 12 Mar 2006 14:09:43 -0700
>
>> OK, just got time to test this.  Using gcc-3.3.5 and your patch
>> against 2.6.16-rc6, everything is booting fine on an Ultra 1.
>> Anything you'd like to see from the compiled output?
>
> And 2.6.16-rc6 without the patch is definitely broken
> right?  Can you verify this?  I want to make sure I'm
> fixing something.

With gcc-3.3.5 and gcc-3.3.6, esp works fine with or without the patch on 
2.6.16-rc6.  If gcc-3.4.5 is used to compile 2.6.16-rc6, the patch does 
not really appear to change anything as the esp errors happen with or 
without it.

Cheers,
- -- 
Jason Wever
Gentoo/Sparc Team Co-Lead
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFEFOOVdKvgdVioq28RAoO6AKC1CDFsZ5lWu919fAHRGXDyPHMjqACfZr+J
IGFMQOkPgPn55+QyueXCOn8 Qp
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ESP busted
  2006-03-09 21:16 ESP busted David S. Miller
                   ` (5 preceding siblings ...)
  2006-03-13  3:14 ` Jason Wever
@ 2006-03-13  4:30 ` David S. Miller
  2006-03-13  4:59 ` Jason Wever
  7 siblings, 0 replies; 9+ messages in thread
From: David S. Miller @ 2006-03-13  4:30 UTC (permalink / raw)
  To: sparclinux

From: Jason Wever <weeve@gentoo.org>
Date: Sun, 12 Mar 2006 20:14:25 -0700 (MST)

> With gcc-3.3.5 and gcc-3.3.6, esp works fine with or without the patch on 
> 2.6.16-rc6.  If gcc-3.4.5 is used to compile 2.6.16-rc6, the patch does 
> not really appear to change anything as the esp errors happen with or 
> without it.

I thought the ESP errors appeared with gcc-3.3.x, why were
you testing any of my patches with that compiler if that was
not the failure case to begin with?

My time is wasted yet again...

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ESP busted
  2006-03-09 21:16 ESP busted David S. Miller
                   ` (6 preceding siblings ...)
  2006-03-13  4:30 ` David S. Miller
@ 2006-03-13  4:59 ` Jason Wever
  7 siblings, 0 replies; 9+ messages in thread
From: Jason Wever @ 2006-03-13  4:59 UTC (permalink / raw)
  To: sparclinux

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sun, 12 Mar 2006, David S. Miller wrote:

> From: Jason Wever <weeve@gentoo.org>
> Date: Sun, 12 Mar 2006 20:14:25 -0700 (MST)
>
>> With gcc-3.3.5 and gcc-3.3.6, esp works fine with or without the patch on
>> 2.6.16-rc6.  If gcc-3.4.5 is used to compile 2.6.16-rc6, the patch does
>> not really appear to change anything as the esp errors happen with or
>> without it.
>
> I thought the ESP errors appeared with gcc-3.3.x, why were
> you testing any of my patches with that compiler if that was
> not the failure case to begin with?

From the original testing I did, it appears that gcc-3.4.5 is the 
problematic one.  The reason I tested against gcc-3.3.x was because that 
appeared to be what you and Josh were working with during this past week.

Cheers,
- -- 
Jason Wever
Gentoo/Sparc Team Co-Lead
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFEFPwbdKvgdVioq28RAvVpAKCsCFKAbQUnL7H8ElWLnSGD5CXMvwCfejG1
GyJQFUkeFy0ejtEk9n6e0dM=R9f5
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2006-03-13  4:59 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-09 21:16 ESP busted David S. Miller
2006-03-09 21:19 ` Josh Grebe
2006-03-09 21:27 ` David S. Miller
2006-03-09 21:40 ` David S. Miller
2006-03-12 21:09 ` Jason Wever
2006-03-12 21:52 ` David S. Miller
2006-03-13  3:14 ` Jason Wever
2006-03-13  4:30 ` David S. Miller
2006-03-13  4:59 ` Jason Wever

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.