From mboxrd@z Thu Jan 1 00:00:00 1970 From: sudeep.holla@arm.com (Sudeep Holla) Date: Thu, 26 Jun 2014 20:03:20 +0100 Subject: [PATCH 2/9] drivers: base: support cpu cache information interface to userspace via sysfs In-Reply-To: <20140626185005.GA32514@n2100.arm.linux.org.uk> References: <1403717444-23559-1-git-send-email-sudeep.holla@arm.com> <1403717444-23559-3-git-send-email-sudeep.holla@arm.com> <20140625222355.GK32514@n2100.arm.linux.org.uk> <53AC695C.2090406@arm.com> <20140626185005.GA32514@n2100.arm.linux.org.uk> Message-ID: <53AC6E78.8000706@arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 26/06/14 19:50, Russell King - ARM Linux wrote: > On Thu, Jun 26, 2014 at 07:41:32PM +0100, Sudeep Holla wrote: >> Hi, >> >> On 25/06/14 23:23, Russell King - ARM Linux wrote: >>> On Wed, Jun 25, 2014 at 06:30:37PM +0100, Sudeep Holla wrote: >>>> + coherency_line_size: the minimum amount of data that gets transferred >>> >>> So, what value to do envision this taking for a CPU where the cache >>> line size is 32 bytes, but each cache line has two dirty bits which >>> allow it to only evict either the upper or lower 16 bytes depending >>> on which are dirty? >>> >> >> IIUC most of existing implementations of cacheinfo on various architectures >> are representing the cache line size as coherency_line_size, in which case I >> need fix the definition in this file. > > As an example, here's an extract from the SA110 TRM: > > StrongARM contains a 16KByte writeback data cache. The DC has 512 lines > of 32 bytes (8 words), arranged as a 32 way set associative cache, and > uses the virtual addresses generated by the processor. A line also > contains the physical address the block was fetched from and two dirty > bits. There is a dirty bit associated with both the first and second > half of the block. When a store hits in the cache the dirty bit > associated with it is set. When a block is evicted from the cache the > dirty bits are used to decide if all, half, or none of the block will > be written back to memory using the physical address stored with the > block. The DC is always reloaded a line at a time (8 words). > Thanks for the information. It's interesting that line is referred as block when referring to 2 dirty bits. I am not sure if this can be mapped to physical_line_partition = 2. Thoughts ? >> BTW will there be any architectural way of finding such configuration ? > > Not that I know of. > That's bad :) Regards, Sudeep