Re: [RFC PATCH v2 5/5] mm, shmem: Show location of non-resident shmem pages in smaps

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/15/2014 06:21 PM, Oleg Nesterov wrote:
> Hi Jerome,
> 
> Not sure I understand this patch correctly, will try to read it later.
> But a couple of nits/questions anyway,
> 
> On 09/15, Jerome Marchand wrote:
>>
>> +The ShmXXX lines only appears for shmem mapping. They show the amount of memory
>> +from the mapping that is currently:
>> + - resident in RAM but not mapped into any process (ShmNotMapped)
> 
> But how can we know that it is not mapped by another process?

Its mapcount is zero.

> 
> And in fact "not mapped" looks confusing (at least to me).

"Not mapped" as "not present in a page table". It does belong to a
userspace mapping though. I wonder if there is a less ambiguous terminology.

> IIUC it is actually
> mapped even by this process, just it never tried to fault these (resident or
> swapped) pages in. Right?

No these pages are in the page cache. This can happen when the only
process which have accessed these exits or munmap() the mapping.

> 
>> +void update_shmem_stats(struct mem_size_stats *mss, struct vm_area_struct *vma,
>> +			pgoff_t pgoff, unsigned long size)
> 
> static?
> 
>> +{
>> +	int count = 0;
>> +
>> +	switch (shmem_locate(vma, pgoff, &count)) {
>> +	case SHMEM_RESIDENT:
>> +		if (!count)
>> +			mss->shmem_notmapped += size;
>> +		break;
>> +	case SHMEM_SWAP:
>> +		mss->shmem_swap += size;
>> +		break;
>> +	}
>> +}
> 
> It seems that shmem_locate() and shmem_vma() are only defined if CONFIG_SHMEM,
> probably this series needs more ifdef's.

Now I wonder. Did I try to compile this with CONFIG_SHMEM unset?

> 
> And I am not sure why we ignore SHMEM_SWAPCACHE...

Hugh didn't like it as it is a small and transient value.

Thanks,
Jerome

> 
> Oleg.
> 


Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]