[openib-general] [PATCH 5 of 5] IB/mthca: give reserved MTTs a separate cache line

Roland Dreier rdreier at cisco.com
Sun Jan 7 14:57:19 PST 2007


 > Actually, I think that we really must have each of the tables start at
 > ICM-page aligned addresses. I think this happened to work fine so far
 > as profile was hard-coded, but with new module option code
 > this might not be the case anymore.

Yes, this is a good point.  However...

 >  +			if (mthca_is_memfree(mdev))
 >  +				profile[i].start = ALIGN(profile[i].start,
 >  +							 max(MTHCA_ICM_PAGE_SIZE,
 >  +							     dma_get_cache_alignment()));

where is the requirement that tables are ICM-page-size-aligned coming
from?  I thought the only requirement was that each table was aligned
to its size?

Also this fails to take into account the gap that might be left when
changing the start of a table in the total_size variable.

And anyway, this is all moot I believe because the code already does:

	for (i = 0; i < MTHCA_RES_NUM; ++i) {
		profile[i].type     = i;
		profile[i].log_num  = max(ffs(profile[i].num) - 1, 0);
		profile[i].size    *= profile[i].num;
		if (mthca_is_memfree(dev))
			profile[i].size = max(profile[i].size, (u64) PAGE_SIZE);
	}

and I'm comfortable assuming that there is no architecture where
dma_get_cache_alignment() is bigger than PAGE_SIZE...

 - R.




More information about the general mailing list