[Cbe-oss-dev] [patch 3/5] cell: updated driver for DDR2 memory on AXON

Jean-Christophe Dubois jdubois at mc.com
Wed Jun 27 02:46:30 EST 2007


On Tuesday 26 June 2007 18:37:01 Maxim Shchetynin wrote:
> No, I mean azfs - a tiny filesystem which we have written for Axon DDR. It
> provides direct access from user to DDR2 without use of any buffer-methods
> nor readahead, which saves us some performance by getting rid of
> unnecessary memory to memory copies.

Is it published? I don't remember seeing it ... Any pointer?

Now why would the "contract" between azfs and the direct_access method of the 
block device be different from ext2? I believe you should be able to use azfs 
and ext2 interchangeably ... Or is there a good reason for the "contract" to 
be different? And how to prevent ext2 to fail in this case (beside not 
using "xip" at mount time)?

JC

>
> Mit freundlichen Grüßen / met vriendelijke groeten / avec regards
>
>     Maxim V. Shchetynin
>     Linux Kernel Entwicklung
>     IBM Deutschland Entwicklung GmbH
>     Linux für Cell, Abteilung 3250
>     Schönaicher Straße 220
>     71032 Böblingen
>
> Vorsitzender des Aufsichtsrats: Johann Weihen
> Geschäftsführung: Herbert Kircher
> Sitz der Gesellschaft: Böblingen
> Registriergericht: Amtsgericht Stuttgart, HRB 243294
>
> Fahr nur so schnell wie dein Schutzengel fliegen kann!
>
>
>
>
>              Jean-Christophe
>              Dubois
>              <jdubois at mc.com>                                           To
>                                        cbe-oss-dev at ozlabs.org
>              26.06.2007 17:19                                           cc
>                                        Maxim Shchetynin/Germany/IBM at IBMDE,
>                                        Arnd Bergmann <arnd at arndb.de>,
>                                        powerpc-dev at ozlabs.org
>                                                                    Subject
>                                        Re: [Cbe-oss-dev] [patch 3/5] cell:
>                                        updated driver for DDR2 memory on
>                                        AXON
>
> On Tuesday 26 June 2007 16:57:11 Maxim Shchetynin wrote:
> > Hi,
> >
> > Actually, axon_ram's direct_access method would not be used by ext2 at
>
> all
>
> > - ext2 feels comfortable with make_request().
>
> hum ... ext2 seems to be the only file system in the kernel tree able to
> use
> the direct_access. And if you mount it with "xip" on the axonram block
> device, it will fail. This should be fixed somehow ...
>
> > We have the direct_access method here only because it is needed for the
> > azfs file-system, which we recommend to use for accessing the Axon's RAM
> > rather then ext2 or any other buffered file-systems.
>
> Do you mean ZFS (http://www.wizy.org/wiki/ZFS_on_FUSE)? Or something else?
>
> JC
>
> > Mit freundlichen Grüßen / met vriendelijke groeten / avec regards
> >
> >     Maxim V. Shchetynin
> >     Linux Kernel Entwicklung
> >     IBM Deutschland Entwicklung GmbH
> >     Linux für Cell, Abteilung 3250
> >     Schönaicher Straße 220
> >     71032 Böblingen
> >
> > Vorsitzender des Aufsichtsrats: Johann Weihen
> > Geschäftsführung: Herbert Kircher
> > Sitz der Gesellschaft: Böblingen
> > Registriergericht: Amtsgericht Stuttgart, HRB 243294
> >
> > Fahr nur so schnell wie dein Schutzengel fliegen kann!
> >
> > On Tuesday 26 June 2007, Christophe Lamoureux wrote:
> > > > +/**
> > > > + * axon_ram_direct_access - direct_access() method for block device
> > > > + * @device, @sector, @data: see block_device_operations method
> > > > + */
> > > > +static int
> > > > +axon_ram_direct_access(struct block_device *device, sector_t sector,
> > > > + unsigned long *data)
> > > > +{
> > > > + struct axon_ram_bank *bank = device->bd_disk->private_data;
> > > > + loff_t offset;
> > > > +
> > > > + offset = sector << AXON_RAM_SECTOR_SHIFT;
> > > > + if (offset >= bank->size) {
> > > > + dev_err(&bank->device->dev, "Access outside of address space\n");
> > > > + return -ERANGE;
> > > > + }
> > > > +
> > > > + *data = bank->ph_addr + offset;
> > > > +
> > > > + return 0;
> > > > +}
> > >
> > > By looking the ext2 implementation in 2.6.21 and doing some trials (
>
> this
>
> > is
> >
> > > the only file-system that looks to use the direct_access method of
>
> block
>
> > > device )  I do not understand how this direct access function (
> > > axon_ram_direct_access ) implementation could work.
> > >
> > > The value of *data returned is a physical address of the DDR as seen
>
> from
>
> > the
> >
> > > PPU ( something like 0x100_0000_0000+ offset )
> > >
> > > The method ext2_clear_xip_target() will call clear_page() with this
> >
> > physical
> >
> > > address. This does not work.
> > >
> > > There is the same kind of issue later in method ext2_get_xip_page()
>
> with
>
> > > virt_to_page() with the physical address.
> > >
> > > Note, that if the line
> > >
> > >            *data = bank->ph_addr + offset;
> > >
> > > in axon_ram_direct_access is changed to
> > >
> > >            *data = bank->io_addr + offset;
> > >
> > > the issue in ext2_clear_xip_target()  --> clear_page() would be
>
> corrected
>
> > but
> >
> > > the  ext2_get_xip_page() --> virt_to_page() would not work as the
>
> virtual
>
> > > address given would be the result of a ioremap_flags().
> > >
> > > Did I misunderstood or miss something ?
> >
> > From looking at the code, I'd say you are right. Maxim, could you give
> > Christoph
> > some insight on this?
> >
> >              Arnd <><
> >
> >
> > _______________________________________________
> > cbe-oss-dev mailing list
> > cbe-oss-dev at ozlabs.org
> > https://ozlabs.org/mailman/listinfo/cbe-oss-dev
>
> _______________________________________________
> cbe-oss-dev mailing list
> cbe-oss-dev at ozlabs.org
> https://ozlabs.org/mailman/listinfo/cbe-oss-dev





More information about the cbe-oss-dev mailing list