{"push_id":779526977,"size":4,"distinct_size":4,"ref":"refs/heads/for-HS-upstream-highmem","head":"1515d20056a7e07605692de47fd2e1196ad0b798","before":"5e38ee2f4a4a25c1c146fb1acbd03efd7a59a3e8","commits":[{"sha":"24c43e5ef9167d8bb8c48f1dd416a89a1c34c073","author":{"email":"1fa739873496c8c0c1b521f2061ee5fa4a0306e8@synopsys.com","name":"Alexey Brodkin"},"message":"ARC: mm/init - nuke unused \"high_memory\" variable\n\nThis variable is neither used in ARC code nor in generic code.\n\nSigned-off-by: Alexey Brodkin <abrodkin@synopsys.com>","distinct":true,"url":"https://api.github.com/repos/foss-for-synopsys-dwc-arc-processors/linux/commits/24c43e5ef9167d8bb8c48f1dd416a89a1c34c073"},{"sha":"552fe9ca30ea6a54e5d0d7d6901046591d1f3dd6","author":{"email":"1fa739873496c8c0c1b521f2061ee5fa4a0306e8@synopsys.com","name":"Alexey Brodkin"},"message":"ARC: mm - introduce hole between low- and highmem\n\nThis way we have this layout:\n--->8---\nVirtual kernel memory layout:\n    himem   : 0xfc000000 - 0x100000000   (  64 MB)\n    lowmem  : 0x80000000 - 0x90000000   ( 256 MB)\n--->8---\n\nNote here lowmem ends at 0x9000_0000 and highmem starts at 0xfc00_0000.\n\nThis is required to prepare for PAE when highmem will be situated\nfar from lowmem (most probably above 4Gb) and so we'll inevitably have\na hole between low- and highmem.\n\nSigned-off-by: Alexey Brodkin <abrodkin@synopsys.com>","distinct":true,"url":"https://api.github.com/repos/foss-for-synopsys-dwc-arc-processors/linux/commits/552fe9ca30ea6a54e5d0d7d6901046591d1f3dd6"},{"sha":"a0d197b043138cb35a38072fef56a8a24468547c","author":{"email":"1fa739873496c8c0c1b521f2061ee5fa4a0306e8@synopsys.com","name":"Alexey Brodkin"},"message":"ARC: mm: PAE40 support\n\nThis is the first working implementation of 40-bit physical address\nextension on ARCv2.\n\nThis is how to run kernel with enabled PAE40 in nSIM\n--->8---\nmdb -nsim -av2hs -prop=cpunum=0 -mmuv4 -Xrtc -Xatomic -Xtimer0 -Xtimer1\n-Xmpyd -Xqmpyh -Xdiv_rem -toggle=deadbeef=1\n-prop=nsim_mem-dev=uart0,base=0xc0fc1000,irq=24 -prop=mmu_pagesize=8192\n-prop=mmu_super_pagesize=2097152 -prop=mmu_stlb_entries=16\n-prop=mmu_ntlb_ways=4 -prop=mmu_ntlb_sets=128 -icache=16384,64,2,o\n-dcache=16384,64,4,o -prop=nsim_isa_aps_feature=1\n-prop=nsim_isa_num_actionpoints=4 -prop=nsim_isa_ll64_option=1 -Xqmpyh\n-prop=mmu_pae40_enabled=1 -OK vmlinux\n--->8---\n\nThis is console output:\n--->8---\nVirtual kernel memory layout:\n    himem   : 0x0100000000 - 0x0200000000   (4096 MB) <-- 4Gb really!\n    lowmem  :     0x80000000 - 0x90000000   ( 256 MB)\n    vmalloc :     0x70000000 - 0x80000000   ( 256 MB)\n    fixmap  :     0x6fe00000 - 0x6fffe000   (   1 MB)\n    pkmap   :     0x6fc00000 - 0x6fe00000   (   2 MB)\n      .text :     0x801fe000 - 0x8048d9c8   (2623 kB)\n      .init :     0x80002000 - 0x801fe000   (2032 kB)\n      .data :     0x8048d9c8 - 0x80546fc0   ( 742 kB)\n       .bss :     0x80546fcc - 0x80582d08   ( 240 kB)\n\n...\n\n[ARCLinux]$ free\n             total         used         free       shared      buffers\nMem:       4424608         6688      4417920            0            0\n-/+ buffers:               6688      4417920\nSwap:            0            0            0\n--->8---\n\nAnt this is a uI/DTLB dump that shows physical addresses that are used.\n--->8---\nMicro-ITLB contents (4 total entries):\n  tlbpd0: 2002c273: vaddr=   2002c000 sz0 Vg asid=73\n  tlbpd1: 0fb1c013: paddr=01:0fb1c000 k:rwX u:rwX f:C\n  tlbpd0: 20040273: vaddr=   20040000 sz0 Vg asid=73\n  tlbpd1: 0fb30013: paddr=01:0fb30000 k:rwX u:rwX f:C\n  tlbpd0: 20054273: vaddr=   20054000 sz0 Vg asid=73\n  tlbpd1: 0fb44013: paddr=01:0fb44000 k:rwX u:rwX f:C\n  tlbpd0: 00014273: vaddr=      14000 sz0 Vg asid=73\n  tlbpd1: 0f936013: paddr=01:0f936000 k:rwX u:rwX f:C\nMicro-DTLB contents (8 total entries):\n  tlbpd0: 000dc273: vaddr=      dc000 sz0 Vg asid=73\n  tlbpd1: 0fc0206d: paddr=01:0fc02000 k:RWx u:RWx f:C\n  tlbpd0: 20090273: vaddr=   20090000 sz0 Vg asid=73\n  tlbpd1: 0fbc806d: paddr=01:0fbc8000 k:RWx u:RWx f:C\n  tlbpd0: 5fbb8273: vaddr=   5fbb8000 sz0 Vg asid=73\n  tlbpd1: 0fbb806d: paddr=01:0fbb8000 k:RWx u:RWx f:C\n  tlbpd0: 7000036f: vaddr=   70000000 sz0 VG asid=6f\n  tlbpd1: 0f000061: paddr=01:0f000000 k:RWx u:rwx f:C\n  tlbpd0: 20094273: vaddr=   20094000 sz0 Vg asid=73\n  tlbpd1: 801e606d: paddr=   801e6000 k:RWx u:RWx f:C\n  tlbpd0: 70002376: vaddr=   70002000 sz0 VG asid=76\n  tlbpd1: 0f002061: paddr=01:0f002000 k:RWx u:rwx f:C\n  tlbpd0: 20092273: vaddr=   20092000 sz0 Vg asid=73\n  tlbpd1: 0fc0006d: paddr=01:0fc00000 k:RWx u:RWx f:C\n  tlbpd0: 000c4273: vaddr=      c4000 sz0 Vg asid=73\n  tlbpd1: 0fbd006d: paddr=01:0fbd0000 k:RWx u:RWx f:C\n--->8---\n\nNote physical addresses are like \"01_ffbee000\" - which means very end of\n4th Gb.\n\nStill there're things to improve:\n1. Allow setup of high memory region via device tree (that's simple -\njust needs to be done)\n2. Find-out how to do cache sync-up properly in case of 40-bit physical\naddress\n3. Do some stress-testing of PAE which involves heavy lifting of huge\nmemory objects - now sure what and how especially on nSIM where I\ndefinitely cannot simulate target memory which is > 4Gb (I only have 8\nin my laptop)\n\nThere're prerequisites for this patch to be applied on top of highmem:\n 1. ARC: mm/init - accomodate hole between low- and highmem\n 2. mm/init - nuke unused \"high_memory\" variable\n\nFor those who want to try it in nSIM I may push source tree on GitHub\n(probably in a private repo for now - or we don't care about hiding PAE\nstuff?).\n\nSigned-off-by: Alexey Brodkin <abrodkin@synopsys.com>","distinct":true,"url":"https://api.github.com/repos/foss-for-synopsys-dwc-arc-processors/linux/commits/a0d197b043138cb35a38072fef56a8a24468547c"},{"sha":"1515d20056a7e07605692de47fd2e1196ad0b798","author":{"email":"1fa739873496c8c0c1b521f2061ee5fa4a0306e8@synopsys.com","name":"Alexey Brodkin"},"message":"WIP: move highmem above 4Gb\n\nNow memory loos like this:\n--->8---\nVirtual kernel memory layout:\n    himem   : 0x010c000000 - 0x0110000000   (  64 MB)\n    lowmem  : 0x80000000 - 0x90000000   ( 256 MB)\n--->8---\n\nThat's an extract from TLB:\n--->8---\nJoint TLB contents (-------- means zero):\nset 0\n  tlbpd0: 2000020c: vaddr=   20000000 sz0 Vg asid=0c\n  tlbpd1: 0f59a05b: paddr=01/0f59a000 k:RwX u:RwX f:C\n  tlbpd0: 7000030c: vaddr=   70000000 sz0 VG asid=0c\n  tlbpd1: 0e800071: paddr=01/0e800000 k:RWX u:rwx f:C\n  tlbpd0: 20000265: vaddr=   20000000 sz0 Vg asid=65\n  tlbpd1: 0f59a05b: paddr=01/0f59a000 k:RwX u:RwX f:C\n  tlbpd0: 2000026d: vaddr=   20000000 sz0 Vg asid=6d\n  tlbpd1: 0f59a05b: paddr=01/0f59a000 k:RwX u:RwX f:C\n--->8---\n\nSee paddr=01/xxx that point to physical memory above 4Gb\n\nSigned-off-by: Alexey Brodkin <abrodkin@synopsys.com>","distinct":true,"url":"https://api.github.com/repos/foss-for-synopsys-dwc-arc-processors/linux/commits/1515d20056a7e07605692de47fd2e1196ad0b798"}]}