All of lore.kernel.org
 help / color / mirror / Atom feed
From: afzal mohammed <afzal.mohd.ma@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: zong.li@sifive.com, Alan Kao <alankao@andestech.com>,
	atish.patra@wdc.com, Albert Ou <aou@eecs.berkeley.edu>,
	Gary Guo <gary@garyguo.net>,
	linux-riscv@lists.infradead.org,
	Steven Price <steven.price@arm.com>,
	alex@ghiti.fr, Russell King <linux@armlinux.org.uk>,
	Mike Rapoport <rppt@linux.ibm.com>, Borislav Petkov <bp@suse.de>,
	Eric Lin <tesheng@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	David Abdurachmanov <david.abdurachmanov@gmail.com>,
	Anup Patel <Anup.Patel@wdc.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	yash.shah@sifive.com, Palmer Dabbelt <palmer@dabbelt.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Logan Gunthorpe <logang@deltatee.com>
Subject: Re: [PATCH 0/3] Highmem support for 32-bit RISC-V
Date: Mon, 4 May 2020 14:40:18 +0530	[thread overview]
Message-ID: <20200504091018.GA24897@afzalpc> (raw)
In-Reply-To: <CAK8P3a3OC5UO72rTDWi6+XgmExJmkATEjscq8hns8Bng06OpcQ@mail.gmail.com>

[ +linux-arm-kernel

  Context: This is regarding VMSPLIT_4G_4G support for 32-bit ARM as a
  possible replacement to highmem. For that, initially, it is being
  attempted to move static kernel mapping from lowmem to vmalloc space.

  in next reply, i will remove everyone/list !ARM related ]

Hi,

On Sun, May 03, 2020 at 10:20:39PM +0200, Arnd Bergmann wrote:

> Which SoC platform are you running this on? Just making
> sure that this won't conflict with static mappings later.

Versatile Express V2P-CA15 on qemu, qemu options include --smp 2 &
2GB memory.

BTW, i could not convince myself why, except for DEBUG_LL, static io
mappings are used.

> 
> One problem I see immediately in arm_memblock_init()

Earlier it went past arm_memblock_init(), issue was clearing the page
tables from VMALLOC_START in devicemaps_init() thr' paging_init(),
which was like cutting the sitting branch of the tree.

Now it is crashing at debug_ll_io_init() of devicemap_init(), and
printascii/earlycon was & is being used to debug :). Things are going
wrong when it tries to create mapping for debug_ll. It looks like a
conflict with static mapping, which you mentioned above, at the same
time i am not seeing kernel static mapping in the same virtual
address, need to dig deeper.

Also tried removing DEBUG_LL, there is a deafening silence in the
console ;)

> is that it uses
> __pa() to convert from virtual address in the linear map to physical,
> but now you actually pass an address that is in vmalloc rather than
> the linear map.

__virt_to_phys_nodebug() which does the actual work on __pa() invocation
has been modifed to handle that case (ideas lifted from ARM64's
implementation), though currently it is a hack as below (and applicable
only for ARM_PATCH_PHYS_VIRT disabled case), other hacks being
VMALLOC_OFFSET set to 0 and adjusting vmalloc size.

        static inline phys_addr_t __virt_to_phys_nodebug(unsigned long x)
        {
	        phys_addr_t __x = (phys_addr_t)x;

        	if (__x >= 0xf0000000)
	        	return __x - KIMAGE_OFFSET + PHYS_OFFSET;
        	else
	        	return __x - PAGE_OFFSET + PHYS_OFFSET;
        }

Regards
afzal


WARNING: multiple messages have this Message-ID (diff)
From: afzal mohammed <afzal.mohd.ma@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: zong.li@sifive.com, Alan Kao <alankao@andestech.com>,
	atish.patra@wdc.com, Albert Ou <aou@eecs.berkeley.edu>,
	Gary Guo <gary@garyguo.net>,
	linux-riscv@lists.infradead.org,
	Steven Price <steven.price@arm.com>,
	alex@ghiti.fr, Russell King <linux@armlinux.org.uk>,
	Mike Rapoport <rppt@linux.ibm.com>, Borislav Petkov <bp@suse.de>,
	Eric Lin <tesheng@andestech.com>,
	Greentime Hu <green.hu@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	David Abdurachmanov <david.abdurachmanov@gmail.com>,
	Anup Patel <Anup.Patel@wdc.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	yash.shah@sifive.com, Palmer Dabbelt <palmer@dabbelt.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Logan Gunthorpe <logang@deltatee.com>
Subject: Re: [PATCH 0/3] Highmem support for 32-bit RISC-V
Date: Mon, 4 May 2020 14:40:18 +0530	[thread overview]
Message-ID: <20200504091018.GA24897@afzalpc> (raw)
In-Reply-To: <CAK8P3a3OC5UO72rTDWi6+XgmExJmkATEjscq8hns8Bng06OpcQ@mail.gmail.com>

[ +linux-arm-kernel

  Context: This is regarding VMSPLIT_4G_4G support for 32-bit ARM as a
  possible replacement to highmem. For that, initially, it is being
  attempted to move static kernel mapping from lowmem to vmalloc space.

  in next reply, i will remove everyone/list !ARM related ]

Hi,

On Sun, May 03, 2020 at 10:20:39PM +0200, Arnd Bergmann wrote:

> Which SoC platform are you running this on? Just making
> sure that this won't conflict with static mappings later.

Versatile Express V2P-CA15 on qemu, qemu options include --smp 2 &
2GB memory.

BTW, i could not convince myself why, except for DEBUG_LL, static io
mappings are used.

> 
> One problem I see immediately in arm_memblock_init()

Earlier it went past arm_memblock_init(), issue was clearing the page
tables from VMALLOC_START in devicemaps_init() thr' paging_init(),
which was like cutting the sitting branch of the tree.

Now it is crashing at debug_ll_io_init() of devicemap_init(), and
printascii/earlycon was & is being used to debug :). Things are going
wrong when it tries to create mapping for debug_ll. It looks like a
conflict with static mapping, which you mentioned above, at the same
time i am not seeing kernel static mapping in the same virtual
address, need to dig deeper.

Also tried removing DEBUG_LL, there is a deafening silence in the
console ;)

> is that it uses
> __pa() to convert from virtual address in the linear map to physical,
> but now you actually pass an address that is in vmalloc rather than
> the linear map.

__virt_to_phys_nodebug() which does the actual work on __pa() invocation
has been modifed to handle that case (ideas lifted from ARM64's
implementation), though currently it is a hack as below (and applicable
only for ARM_PATCH_PHYS_VIRT disabled case), other hacks being
VMALLOC_OFFSET set to 0 and adjusting vmalloc size.

        static inline phys_addr_t __virt_to_phys_nodebug(unsigned long x)
        {
	        phys_addr_t __x = (phys_addr_t)x;

        	if (__x >= 0xf0000000)
	        	return __x - KIMAGE_OFFSET + PHYS_OFFSET;
        	else
	        	return __x - PAGE_OFFSET + PHYS_OFFSET;
        }

Regards
afzal

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: afzal mohammed <afzal.mohd.ma@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>,
	Alan Kao <alankao@andestech.com>,
	Eric Lin <tesheng@andestech.com>, Gary Guo <gary@garyguo.net>,
	alex@ghiti.fr,
	David Abdurachmanov <david.abdurachmanov@gmail.com>,
	Anup Patel <Anup.Patel@wdc.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Steven Price <steven.price@arm.com>,
	atish.patra@wdc.com, yash.shah@sifive.com,
	Albert Ou <aou@eecs.berkeley.edu>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Greentime Hu <green.hu@gmail.com>,
	zong.li@sifive.com, Paul Walmsley <paul.walmsley@sifive.com>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@suse.de>,
	Logan Gunthorpe <logang@deltatee.com>,
	linux-riscv@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 0/3] Highmem support for 32-bit RISC-V
Date: Mon, 4 May 2020 14:40:18 +0530	[thread overview]
Message-ID: <20200504091018.GA24897@afzalpc> (raw)
In-Reply-To: <CAK8P3a3OC5UO72rTDWi6+XgmExJmkATEjscq8hns8Bng06OpcQ@mail.gmail.com>

[ +linux-arm-kernel

  Context: This is regarding VMSPLIT_4G_4G support for 32-bit ARM as a
  possible replacement to highmem. For that, initially, it is being
  attempted to move static kernel mapping from lowmem to vmalloc space.

  in next reply, i will remove everyone/list !ARM related ]

Hi,

On Sun, May 03, 2020 at 10:20:39PM +0200, Arnd Bergmann wrote:

> Which SoC platform are you running this on? Just making
> sure that this won't conflict with static mappings later.

Versatile Express V2P-CA15 on qemu, qemu options include --smp 2 &
2GB memory.

BTW, i could not convince myself why, except for DEBUG_LL, static io
mappings are used.

> 
> One problem I see immediately in arm_memblock_init()

Earlier it went past arm_memblock_init(), issue was clearing the page
tables from VMALLOC_START in devicemaps_init() thr' paging_init(),
which was like cutting the sitting branch of the tree.

Now it is crashing at debug_ll_io_init() of devicemap_init(), and
printascii/earlycon was & is being used to debug :). Things are going
wrong when it tries to create mapping for debug_ll. It looks like a
conflict with static mapping, which you mentioned above, at the same
time i am not seeing kernel static mapping in the same virtual
address, need to dig deeper.

Also tried removing DEBUG_LL, there is a deafening silence in the
console ;)

> is that it uses
> __pa() to convert from virtual address in the linear map to physical,
> but now you actually pass an address that is in vmalloc rather than
> the linear map.

__virt_to_phys_nodebug() which does the actual work on __pa() invocation
has been modifed to handle that case (ideas lifted from ARM64's
implementation), though currently it is a hack as below (and applicable
only for ARM_PATCH_PHYS_VIRT disabled case), other hacks being
VMALLOC_OFFSET set to 0 and adjusting vmalloc size.

        static inline phys_addr_t __virt_to_phys_nodebug(unsigned long x)
        {
	        phys_addr_t __x = (phys_addr_t)x;

        	if (__x >= 0xf0000000)
	        	return __x - KIMAGE_OFFSET + PHYS_OFFSET;
        	else
	        	return __x - PAGE_OFFSET + PHYS_OFFSET;
        }

Regards
afzal

  reply	other threads:[~2020-05-04  9:10 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-31  9:32 [PATCH 0/3] Highmem support for 32-bit RISC-V Eric Lin
2020-03-31  9:32 ` Eric Lin
2020-03-31  9:32 ` [PATCH 1/3] riscv/mm: Add pkmap region and CONFIG_HIGHMEM Eric Lin
2020-03-31  9:32   ` Eric Lin
2020-03-31  9:32 ` [PATCH 2/3] riscv/mm: Implement kmap() and kmap_atomic() Eric Lin
2020-03-31  9:32   ` Eric Lin
2020-03-31  9:32 ` [PATCH 3/3] riscv/mm: Add pkmap in print_vm_layout() Eric Lin
2020-03-31  9:32   ` Eric Lin
2020-04-02  9:31 ` [PATCH 0/3] Highmem support for 32-bit RISC-V Arnd Bergmann
2020-04-02  9:31   ` Arnd Bergmann
2020-04-08  3:51   ` Alan Kao
2020-04-08  3:51     ` Alan Kao
2020-04-08 14:40     ` Arnd Bergmann
2020-04-08 14:40       ` Arnd Bergmann
2020-04-14 15:17       ` afzal mohammed
2020-04-14 15:17         ` afzal mohammed
2020-04-14 19:29         ` Arnd Bergmann
2020-04-14 19:29           ` Arnd Bergmann
2020-04-15 13:54           ` afzal mohammed
2020-04-15 13:54             ` afzal mohammed
2020-05-03 14:50             ` afzal mohammed
2020-05-03 14:50               ` afzal mohammed
2020-05-03 20:20               ` Arnd Bergmann
2020-05-03 20:20                 ` Arnd Bergmann
2020-05-04  9:10                 ` afzal mohammed [this message]
2020-05-04  9:10                   ` afzal mohammed
2020-05-04  9:10                   ` afzal mohammed
2020-05-04 11:27                   ` Arnd Bergmann
2020-05-04 11:27                     ` Arnd Bergmann
2020-05-04 11:27                     ` Arnd Bergmann
2020-05-11 14:21                     ` ARM: static kernel in vmalloc space (was Re: [PATCH 0/3] Highmem support for 32-bit RISC-V) afzal mohammed
2020-05-11 14:21                       ` afzal mohammed
2020-05-11 15:29                       ` Arnd Bergmann
2020-05-11 15:29                         ` Arnd Bergmann
2020-05-12 10:47                         ` ARM: static kernel in vmalloc space afzal mohammed
2020-05-12 10:47                           ` afzal mohammed
2020-05-12 19:49                           ` Arnd Bergmann
2020-05-12 19:49                             ` Arnd Bergmann
2020-05-14 11:17                             ` afzal mohammed
2020-05-14 11:17                               ` afzal mohammed
2020-05-14 12:41                               ` Arnd Bergmann
2020-05-14 12:41                                 ` Arnd Bergmann
2020-05-14 13:35                                 ` afzal mohammed
2020-05-14 13:35                                   ` afzal mohammed
2020-05-14 14:44                                   ` afzal mohammed
2020-05-14 14:44                                     ` afzal mohammed
2020-05-14 15:32                                   ` Arnd Bergmann
2020-05-14 15:32                                     ` Arnd Bergmann
2020-05-16  6:06                                     ` afzal mohammed
2020-05-16  6:06                                       ` afzal mohammed
2020-05-16  7:35                                       ` Arnd Bergmann
2020-05-16  7:35                                         ` Arnd Bergmann
2020-06-07 12:59                                         ` ARM: vmsplit 4g/4g afzal mohammed
2020-06-07 16:11                                           ` Russell King - ARM Linux admin
2020-06-07 16:11                                             ` Russell King - ARM Linux admin
2020-06-08 11:09                                             ` afzal mohammed
2020-06-08 11:09                                               ` afzal mohammed
2020-06-10 10:10                                               ` Linus Walleij
2020-06-10 10:10                                                 ` Linus Walleij
2020-06-12 10:25                                                 ` afzal mohammed
2020-06-12 10:25                                                   ` afzal mohammed
2020-06-15  9:11                                                   ` Linus Walleij
2020-06-15  9:11                                                     ` Linus Walleij
2020-06-15 10:01                                                     ` afzal mohammed
2020-06-15 10:01                                                       ` afzal mohammed
2020-06-07 19:26                                           ` Arnd Bergmann
2020-06-07 19:26                                             ` Arnd Bergmann
2020-06-08 11:18                                             ` afzal mohammed
2020-06-08 11:18                                               ` afzal mohammed
2020-06-08 14:43                                               ` Arnd Bergmann
2020-06-08 14:43                                                 ` Arnd Bergmann
2020-06-08 15:17                                                 ` afzal mohammed
2020-06-08 15:17                                                   ` afzal mohammed
2020-06-09 12:15                                                   ` afzal mohammed
2020-06-09 12:15                                                     ` afzal mohammed
2020-06-09 14:22                                                     ` Arnd Bergmann
2020-06-09 14:22                                                       ` Arnd Bergmann
2020-05-14 16:25                                 ` ARM: static kernel in vmalloc space Russell King - ARM Linux admin
2020-05-14 16:25                                   ` Russell King - ARM Linux admin
2020-05-14 21:12                                   ` Arnd Bergmann
2020-05-14 21:12                                     ` Arnd Bergmann
2020-05-14 23:40                                     ` Russell King - ARM Linux admin
2020-05-14 23:40                                       ` Russell King - ARM Linux admin
2020-05-15 15:41                                       ` Arnd Bergmann
2020-05-15 15:41                                         ` Arnd Bergmann
2020-07-30  9:33                                         ` Linus Walleij
2020-07-30  9:33                                           ` Linus Walleij
2020-07-30 10:17                                           ` Arnd Bergmann
2020-07-30 10:17                                             ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200504091018.GA24897@afzalpc \
    --to=afzal.mohd.ma@gmail.com \
    --cc=Anup.Patel@wdc.com \
    --cc=akpm@linux-foundation.org \
    --cc=alankao@andestech.com \
    --cc=alex@ghiti.fr \
    --cc=aou@eecs.berkeley.edu \
    --cc=arnd@arndb.de \
    --cc=atish.patra@wdc.com \
    --cc=bp@suse.de \
    --cc=david.abdurachmanov@gmail.com \
    --cc=gary@garyguo.net \
    --cc=green.hu@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=logang@deltatee.com \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=rppt@linux.ibm.com \
    --cc=steven.price@arm.com \
    --cc=tesheng@andestech.com \
    --cc=tglx@linutronix.de \
    --cc=yash.shah@sifive.com \
    --cc=zong.li@sifive.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.