On Tue, Aug 13, 2019 at 06:24:51PM +0200, Oleg Nesterov wrote:
> > Let me see first that my explanation makes sense :P
>
> It does ;)
Does it look fine to you? It's on top of Song's patchset.
>From 58834d6c1e63321af742b208558a6b5cb86fc7ec Mon Sep 17 00:00:00 2001
From: "Kirill A. Shutemov"
> On Aug 15, 2019, at 3:16 AM, Oleg Nesterov wrote:
>
> Hi Song,
>
> sorry, I forgot to reply to this email,
>
> On 08/13, Song Liu wrote:
>>
>> Do you have further comments for the version below? If not, could you
>> please reply with your Acked-by or Reviewed-by?
>
> I see nothing wrong
Hi Song,
sorry, I forgot to reply to this email,
On 08/13, Song Liu wrote:
>
> Do you have further comments for the version below? If not, could you
> please reply with your Acked-by or Reviewed-by?
I see nothing wrong in the last series, no objections from me.
I don't think I can't ack the
On 08/13, Kirill A. Shutemov wrote:
>
> On Tue, Aug 13, 2019 at 04:05:53PM +0200, Oleg Nesterov wrote:
> > >
> > > I thought that retract_page_tables() checks vma->anon_vma to ensure that
> > > this vma doesn't have a cow'ed PageAnon() page. And I still can't
> > > understand
> > > why can't it
On Tue, Aug 13, 2019 at 04:05:53PM +0200, Oleg Nesterov wrote:
> On 08/13, Oleg Nesterov wrote:
> >
> > On 08/12, Kirill A. Shutemov wrote:
> > >
> > > On Mon, Aug 12, 2019 at 03:22:58PM +0200, Oleg Nesterov wrote:
> > > > On 08/12, Kirill A. Shutemov wrote:
> > > > >
> > > > > On Fri, Aug 09,
Hi Oleg,
> On Aug 12, 2019, at 2:04 PM, Song Liu wrote:
>
>
>
>> On Aug 12, 2019, at 7:40 AM, Kirill A. Shutemov wrote:
>>
>> On Mon, Aug 12, 2019 at 03:22:58PM +0200, Oleg Nesterov wrote:
>>> On 08/12, Kirill A. Shutemov wrote:
On Fri, Aug 09, 2019 at 06:01:18PM +, Song Liu
On 08/13, Oleg Nesterov wrote:
>
> On 08/12, Kirill A. Shutemov wrote:
> >
> > On Mon, Aug 12, 2019 at 03:22:58PM +0200, Oleg Nesterov wrote:
> > > On 08/12, Kirill A. Shutemov wrote:
> > > >
> > > > On Fri, Aug 09, 2019 at 06:01:18PM +, Song Liu wrote:
> > > > > + if
On 08/12, Kirill A. Shutemov wrote:
>
> On Mon, Aug 12, 2019 at 03:22:58PM +0200, Oleg Nesterov wrote:
> > On 08/12, Kirill A. Shutemov wrote:
> > >
> > > On Fri, Aug 09, 2019 at 06:01:18PM +, Song Liu wrote:
> > > > + if (pte_none(*pte) || !pte_present(*pte))
> > > > +
> On Aug 12, 2019, at 7:40 AM, Kirill A. Shutemov wrote:
>
> On Mon, Aug 12, 2019 at 03:22:58PM +0200, Oleg Nesterov wrote:
>> On 08/12, Kirill A. Shutemov wrote:
>>>
>>> On Fri, Aug 09, 2019 at 06:01:18PM +, Song Liu wrote:
+ if (pte_none(*pte) || !pte_present(*pte))
On Mon, Aug 12, 2019 at 03:22:58PM +0200, Oleg Nesterov wrote:
> On 08/12, Kirill A. Shutemov wrote:
> >
> > On Fri, Aug 09, 2019 at 06:01:18PM +, Song Liu wrote:
> > > + if (pte_none(*pte) || !pte_present(*pte))
> > > + continue;
> >
> > You don't need to check both.
> On Aug 12, 2019, at 6:06 AM, Oleg Nesterov wrote:
>
> On 08/09, Song Liu wrote:
>>
>> +void collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr)
>> +{
>> +unsigned long haddr = addr & HPAGE_PMD_MASK;
>> +struct vm_area_struct *vma = find_vma(mm, haddr);
>> +struct
On 08/12, Kirill A. Shutemov wrote:
>
> On Fri, Aug 09, 2019 at 06:01:18PM +, Song Liu wrote:
> > + if (pte_none(*pte) || !pte_present(*pte))
> > + continue;
>
> You don't need to check both. Present is never none.
Agreed.
Kirill, while you are here, shouldn't
On 08/09, Song Liu wrote:
>
> +void collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr)
> +{
> + unsigned long haddr = addr & HPAGE_PMD_MASK;
> + struct vm_area_struct *vma = find_vma(mm, haddr);
> + struct page *hpage = NULL;
> + pmd_t *pmd, _pmd;
> + spinlock_t
On Fri, Aug 09, 2019 at 06:01:18PM +, Song Liu wrote:
> + if (pte_none(*pte) || !pte_present(*pte))
> + continue;
You don't need to check both. Present is never none.
--
Kirill A. Shutemov
> On Aug 9, 2019, at 9:30 AM, Song Liu wrote:
>
>
>
>> On Aug 9, 2019, at 8:24 AM, Oleg Nesterov wrote:
>>
>> On 08/08, Song Liu wrote:
>>>
On Aug 8, 2019, at 9:33 AM, Oleg Nesterov wrote:
> + for (i = 0, addr = haddr; i < HPAGE_PMD_NR; i++, addr += PAGE_SIZE) {
> +
> On Aug 9, 2019, at 8:24 AM, Oleg Nesterov wrote:
>
> On 08/08, Song Liu wrote:
>>
>>> On Aug 8, 2019, at 9:33 AM, Oleg Nesterov wrote:
>>>
+ for (i = 0, addr = haddr; i < HPAGE_PMD_NR; i++, addr += PAGE_SIZE) {
+ pte_t *pte = pte_offset_map(pmd, addr);
+
On 08/08, Song Liu wrote:
>
> > On Aug 8, 2019, at 9:33 AM, Oleg Nesterov wrote:
> >
> >> + for (i = 0, addr = haddr; i < HPAGE_PMD_NR; i++, addr += PAGE_SIZE) {
> >> + pte_t *pte = pte_offset_map(pmd, addr);
> >> + struct page *page;
> >> +
> >> + if (pte_none(*pte))
> On Aug 8, 2019, at 9:33 AM, Oleg Nesterov wrote:
>
> On 08/07, Song Liu wrote:
>>
>> +void collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr)
>> +{
>> +unsigned long haddr = addr & HPAGE_PMD_MASK;
>> +struct vm_area_struct *vma = find_vma(mm, haddr);
>> +struct
On 08/07, Song Liu wrote:
>
> +void collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr)
> +{
> + unsigned long haddr = addr & HPAGE_PMD_MASK;
> + struct vm_area_struct *vma = find_vma(mm, haddr);
> + struct page *hpage = NULL;
> + pmd_t *pmd, _pmd;
> + spinlock_t
khugepaged needs exclusive mmap_sem to access page table. When it fails
to lock mmap_sem, the page will fault in as pte-mapped THP. As the page
is already a THP, khugepaged will not handle this pmd again.
This patch enables the khugepaged to retry collapse the page table.
struct mm_slot (in
20 matches
Mail list logo