RE: [PATCH 8/9] dspbridge: add map support for big buffers

From: Guzman Lugo, Fernando
Date: Tue Aug 24 2010 - 17:55:48 EST




> -----Original Message-----
> From: Felipe Contreras [mailto:felipe.contreras@xxxxxxxxx]
> Sent: Tuesday, August 24, 2010 4:18 PM
> To: Guzman Lugo, Fernando
> Cc: Kanigeri, Hari; linux-omap@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; ohad@xxxxxxxxxx;
> hiroshi.doyu@xxxxxxxxx; ameya.palande@xxxxxxxxx;
> felipe.contreras@xxxxxxxxx
> Subject: Re: [PATCH 8/9] dspbridge: add map support for big buffers
>
> On Tue, Aug 24, 2010 at 10:30 PM, Guzman Lugo, Fernando
> <fernando.lugo@xxxxxx> wrote:
> >> Oh, I actually meant the DMM pool.
> >>
> >> a) 1. Migrate to iommu, 2. Remove DMM completely
> >> b) 1. Remove DMM pool, 2. Migrate to iommu 3. Remove DMM completely
> >
> > Ok, what is the issue with DMM pool?
>
> From what I've heard; fragmentation.
>
> > The issue I see removing DMM pool in this moment and making all the
> > DMM Available (from 0x11000000 to 0xFFFFFFFF omap3 case) that is:
> >
> > The DMM module allocates a list of "struct map_page"
> elements base on
> > DMM_POOL_SIZE to keep track of memory reserved and mapped.
> >
> > Memory allocated = DMM_POOL_SIZE / PAGE_SIZE * sizeof(struct
> > map_page);
> >
> > So making all memory avalible it will increase the memory
> used for DMM
> > Module and it could be quite significant.
> >
> > Iovmm.c module, the list is increased dynamically when it
> is needed so
> > It does no have that problem. Then when the migration is done and
> > Iovmm.c module is used the DMM_POOL_SIZE can be removed
> without issues.
>
> It seems that this "memory allocated" you are taking about is
> an array, but what we would like is a list, like apparently
> iovmm is using. I think I can give that a try if needed.

Yes, that is an array in dmm and a liked list in iovmm.

>
> However, from what I can see iovmm can be used instead of dmm
> even if the switch to iommu is not yet there.

Iovmm have a list of memory used (reserved, that is what dmm module
does) and also maps the buffer, So we can not use iovmm without removing
The mapping which is done inside dspbridge because it will conflic with
The mapping doing inside iovmm module. So that means for using iovmm, the
Mapping in dspbridge had to be removed in order to work properly.


Regards,
Fernando.

>
> --
> Felipe Contreras
> --
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/