On Thu, Aug 16, 2012 at 09:27:38PM +0200, Andrea Arcangeli wrote:
> On Thu, Aug 09, 2012 at 12:08:18PM +0300, Kirill A. Shutemov wrote:
> > + if (is_huge_zero_pmd(*pmd)) {
> > + __split_huge_zero_page_pmd(mm, pmd, address);
>
> This will work fine but it's a bit sad having to add
On Thu, Aug 16, 2012 at 09:27:38PM +0200, Andrea Arcangeli wrote:
On Thu, Aug 09, 2012 at 12:08:18PM +0300, Kirill A. Shutemov wrote:
+ if (is_huge_zero_pmd(*pmd)) {
+ __split_huge_zero_page_pmd(mm, pmd, address);
This will work fine but it's a bit sad having to add address at
On Fri, Aug 17, 2012 at 11:12:33AM +0300, Kirill A. Shutemov wrote:
> I've used do_huge_pmd_wp_page_fallback() as template for my code.
> What's difference between these two code paths?
> Why is do_huge_pmd_wp_page_fallback() safe?
Good point. do_huge_pmd_wp_page_fallback works only on the
On Thu, Aug 16, 2012 at 09:27:38PM +0200, Andrea Arcangeli wrote:
> On Thu, Aug 09, 2012 at 12:08:18PM +0300, Kirill A. Shutemov wrote:
> > +static void __split_huge_zero_page_pmd(struct mm_struct *mm, pmd_t *pmd,
> > + unsigned long address)
> > +{
> > + pgtable_t pgtable;
> > +
On Thu, Aug 16, 2012 at 09:27:38PM +0200, Andrea Arcangeli wrote:
On Thu, Aug 09, 2012 at 12:08:18PM +0300, Kirill A. Shutemov wrote:
+static void __split_huge_zero_page_pmd(struct mm_struct *mm, pmd_t *pmd,
+ unsigned long address)
+{
+ pgtable_t pgtable;
+ pmd_t _pmd;
On Fri, Aug 17, 2012 at 11:12:33AM +0300, Kirill A. Shutemov wrote:
I've used do_huge_pmd_wp_page_fallback() as template for my code.
What's difference between these two code paths?
Why is do_huge_pmd_wp_page_fallback() safe?
Good point. do_huge_pmd_wp_page_fallback works only on the current
On Thu, Aug 09, 2012 at 12:08:18PM +0300, Kirill A. Shutemov wrote:
> +static void __split_huge_zero_page_pmd(struct mm_struct *mm, pmd_t *pmd,
> + unsigned long address)
> +{
> + pgtable_t pgtable;
> + pmd_t _pmd;
> + unsigned long haddr = address & HPAGE_PMD_MASK;
> +
On Thu, Aug 09, 2012 at 12:08:18PM +0300, Kirill A. Shutemov wrote:
+static void __split_huge_zero_page_pmd(struct mm_struct *mm, pmd_t *pmd,
+ unsigned long address)
+{
+ pgtable_t pgtable;
+ pmd_t _pmd;
+ unsigned long haddr = address HPAGE_PMD_MASK;
+ struct
From: "Kirill A. Shutemov"
We can't split huge zero page itself, but we can split the pmd which
points to it.
On splitting the pmd we create a table with all ptes set to normal zero
page.
Signed-off-by: Kirill A. Shutemov
---
mm/huge_memory.c | 36
1
From: Kirill A. Shutemov kirill.shute...@linux.intel.com
We can't split huge zero page itself, but we can split the pmd which
points to it.
On splitting the pmd we create a table with all ptes set to normal zero
page.
Signed-off-by: Kirill A. Shutemov kirill.shute...@linux.intel.com
---
10 matches
Mail list logo