All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geoff Levand <geoffrey.levand@am.sony.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>,
	linuxppc-dev@ozlabs.org, Paul Mackerras <paulus@samba.org>,
	"Noguchi, Masato" <Masato.Noguchi@jp.sony.com>
Subject: Re: [patch 05/18] PS3: Fix sparse warnings
Date: Thu, 07 Jun 2007 07:34:21 -0700	[thread overview]
Message-ID: <4668176D.7060002@am.sony.com> (raw)
In-Reply-To: <200706061621.59963.arnd@arndb.de>

Arnd Bergmann wrote:
> On Wednesday 06 June 2007, Geoff Levand wrote:
>> -=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BDspu->l=
ocal_store =3D ioremap(spu->local_store_phys, LS_SIZE);
>> +=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BDspu->l=
ocal_store =3D (__force void *)ioremap(spu->local_store_phys,
>> +=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=
=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=
=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=
=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=
=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=
=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD =EF=BF=BD LS_SIZE)=
;
>=20
> I haven't noticed this before, but it seems to be a preexisting bug:
> You map the local_store as with the guarded page table bit set, which
> causes a performance degradation when accessing the memory from kernel
> space.
>=20
> If you're lucky, your hypervisor knows this and will fix it up for
> you, but I would replace the ioremap call with an
> ioremap_flags(..., _PAGE_NO_CACHE); to be on the safe side.
>=20
> If you want to measure the impact, I'd suggest timing a user space
> read() on the mem file of a running SPU context.

Hi Arnd,

I asked Noguchi-san to check the performance and below is his
report and test program.  I'll add the change into my patch set.

-Geoff

-------- Original Message --------
Subject: RE: [patch 05/18] PS3: Fix sparse warnings
Date: Thu, 7 Jun 2007 05:39:43 -0700
From: Noguchi, Masato <Masato.Noguchi@jp.sony.com>
To: Levand, Geoff <Geoffrey.Levand@am.sony.com>

 << A time to read a whole of LS by read system call >>
not patched: avg. 21053.7800 tick ( 263.831830 microseconds )
patched:     avg. 20809.2412 tick ( 260.767434 microseconds )

about 1% faster.=20
I think it's a valid difference. (not a measurement error.)

FYI,=20
The attached file is source code to measure it.
I run it 10000 times and calc an average.


#include <sys/types.h>

#include <sys/stat.h>

#include <sys/syscall.h>

#include <sys/mman.h>

#include <sys/wait.h>

#include <fcntl.h>

#include <unistd.h>

#include <stdio.h>

#include <signal.h>

#include <string.h>

#include <stdint.h>

#include <stdlib.h>



#include <pthread.h>



#define __NR_spe_run 278

#define __NR_spe_create 279



#define LS_SIZE 0x40000



#define SPENODE "/spu/stoplooptest"



#define MFTB(RA) __asm__ volatile("mftb %0":"=3Dr"(RA))





long long do_test(void)

{

	int spefd =3D -1, lsfd =3D -1;

	int npc, status;

	long long ret =3D -1;



	char buf[LS_SIZE];

	int n;

	uint32_t t1, t2;



	/* create context */

	spefd =3D syscall(__NR_spe_create, SPENODE, 0,

			S_IRUSR | S_IWUSR | S_IXUSR);

	if (spefd < 0) goto out;



	/* run once to assign physical spe */

	npc =3D 0;

	syscall(__NR_spe_run, spefd, &npc, &status);



	/* get /mem file descriptor */

	lsfd =3D open(SPENODE "/mem", O_RDWR,

		    S_IRUSR | S_IWUSR);

	if (lsfd < 0) goto out;



	/* read mem */

	MFTB(t1);

	if (read(lsfd, buf, LS_SIZE) !=3D LS_SIZE) {

		goto out;

	}

	MFTB(t2);



	ret =3D t2 - t1;

 out:

	if ( lsfd >=3D 0 ) close(lsfd);

	if ( spefd >=3D 0 ) close(spefd);



	return ret;

}



int main(int argc, char *argv[])

{

	long long r;

	r =3D do_test();

	printf("%lld\n", r);



	return 0;

}

  reply	other threads:[~2007-06-07 14:34 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20070606024407.786638029@am.sony.com>
2007-06-06  2:59 ` [patch 01/18] Cell: Add spu shutdown method Geoff Levand
2007-06-06  4:08   ` Michael Ellerman
2007-06-06 14:41     ` André Detsch
2007-06-06  2:59 ` [patch 02/18] PS3: Rename IPI symbols Geoff Levand
2007-06-06  3:11   ` Stephen Rothwell
2007-06-06 14:48     ` Will Schmidt
2007-06-06 20:47       ` Geoff Levand
2007-06-06 20:49     ` Geoff Levand
2007-06-06  2:59 ` [patch 03/18] PS3: Use __maybe_unused Geoff Levand
2007-06-06  4:05   ` Michael Ellerman
2007-06-06 22:37     ` Geoff Levand
2007-06-06  2:59 ` [patch 04/18] PS3: Compare firmware version Geoff Levand
2007-06-06  2:59 ` [patch 05/18] PS3: Fix sparse warnings Geoff Levand
2007-06-06 14:21   ` Arnd Bergmann
2007-06-07 14:34     ` Geoff Levand [this message]
2007-06-08  5:59       ` Takao Shinohara
2007-06-06  2:59 ` [patch 06/18] PS3: Add support for HDMI RGB Full Range mode Geoff Levand
2007-06-06  3:00 ` [patch 07/18] PS3: Make ps3av.h usable from user space Geoff Levand
2007-06-06  7:46   ` Christoph Hellwig
2007-06-06 11:27     ` Geert Uytterhoeven
2007-06-06 16:44     ` Geoff Levand
2007-06-07 19:15       ` Christoph Hellwig
2007-06-06  3:00 ` [patch 08/18] PS3: Kexec support Geoff Levand
2007-06-06  4:01   ` Michael Ellerman
2007-06-06 21:55     ` Geoff Levand
2007-06-07  1:25       ` Stephen Rothwell
2007-06-07  1:33         ` Geoff Levand
2007-06-07  2:48           ` Stephen Rothwell
2007-06-07  2:31       ` Michael Ellerman
2007-06-07  2:54         ` Benjamin Herrenschmidt
2007-06-10  0:13           ` Geoff Levand
2007-06-09  8:17   ` [patch 08/18] PS3: Kexec support (and a tutoral on the kexec flow for 64 bit powerpc) Milton Miller
2007-06-09 22:47     ` Geoff Levand
2007-06-06  3:00 ` [patch 09/18] PS3: System-bus rework Geoff Levand
2007-06-06  6:43   ` Geert Uytterhoeven
2007-06-11  7:07   ` Milton Miller
2007-06-11 15:39     ` Geoff Levand
2007-06-11 15:45       ` Geert Uytterhoeven
2007-06-06  3:00 ` [patch 10/18] PS3: System-bus uevent Geoff Levand
2007-06-06  3:00 ` [patch 11/18] PS3: System-bus modinfo attribute Geoff Levand
2007-06-06  3:17   ` Stephen Rothwell
2007-06-06  3:00 ` [patch 12/18] PS3: Repository probe cleanups Geoff Levand
2007-06-06  3:01 ` [patch 13/18] PS3: USB system-bus rework Geoff Levand
2007-06-06  3:01 ` [patch 14/18] PS3: Vuart rework Geoff Levand
2007-06-06  3:01 ` [patch 15/18] PS3: System manager re-work Geoff Levand
2007-06-06  6:51   ` Geert Uytterhoeven
2007-06-06  3:01 ` [patch 16/18] PS3: Rework AV settings driver Geoff Levand
2007-06-06  6:49   ` Geert Uytterhoeven
2007-06-06  3:01 ` [patch 17/18] PS3: Frame buffer system-bus rework Geoff Levand
2007-06-06  6:51   ` Geert Uytterhoeven
2007-06-06  6:51     ` Geert Uytterhoeven
2007-06-06 15:56     ` [Linux-fbdev-devel] " Antonino A. Daplas
2007-06-06 23:08       ` Geoff Levand
2007-06-06 23:37         ` Antonino A. Daplas
2007-06-06  3:01 ` [patch 18/18] PS3: Device registration routines Geoff Levand
2007-06-06  6:57   ` Geert Uytterhoeven
2007-06-06 12:21   ` Geert Uytterhoeven
2007-06-06  3:04 ` [patch 13/18] PS3: USB system-bus rework Geoff Levand
2007-06-08 23:22   ` [patch] PS3: Fix USB return value Geoff Levand
2007-06-25  7:30     ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4668176D.7060002@am.sony.com \
    --to=geoffrey.levand@am.sony.com \
    --cc=Geert.Uytterhoeven@sonycom.com \
    --cc=Masato.Noguchi@jp.sony.com \
    --cc=arnd@arndb.de \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.