A method for allocating physical pages of memory, the method comprising: receiving , at an operating system, OS, page allocator (320;430;540), feedback from a memory side cache monitoring unit (310;420;530) in a memory device, wherein the memory side cache monitoring unit is coupled to a direct mapped memory side cache (330;410;520) in the memory device; wherein the method further comprises: receiving, at the OS page allocator, the feedback arranged to include memory address folding information which comprise: (i). information identifying at least a first memory address range in the direct mapped memory side cache associated with an increased amount of memory address folding, and (ii). information identifying at least a second memory address range in the direct mapped memory side cache associated with an increased number of memory address conflicts, wherein memory address folding occurs when a plurality of the physical memory addresses accessed based on a certain access pattern of a certain workload are mapped to the same memory location in the direct mapped memory side cache; adjusting , at the OS page allocator, a page allocation policy that defines the physical pages allocated by the OS page allocator, wherein the adjusting includes allocating physical pages that avoid the first memory address range and the second memory address range. receiving , at an operating system, OS, page allocator (320;430;540), feedback from a memory side cache monitoring unit (310;420;530) in a memory device, wherein the memory side cache monitoring unit is coupled to a direct mapped memory side cache (330;410;520) in the memory device; wherein the method further comprises: receiving, at the OS page allocator, the feedback arranged to include memory address folding information which comprise: (i). information identifying at least a first memory address range in the direct mapped memory side cache associated with an increased amount of memory address folding, and (ii). information identifying at least a second memory address range in the direct mapped memory side cache associated with an increased number of memory address conflicts, wherein memory address folding occurs when a plurality of the physical memory addresses accessed based on a certain access pattern of a certain workload are mapped to the same memory location in the direct mapped memory side cache; adjusting , at the OS page allocator, a page allocation policy that defines the physical pages allocated by the OS page allocator, wherein the adjusting includes allocating physical pages that avoid the first memory address range and the second memory address range. receiving, at the OS page allocator, the feedback arranged to include memory address folding information which comprise: (i). information identifying at least a first memory address range in the direct mapped memory side cache associated with an increased amount of memory address folding, and (ii). information identifying at least a second memory address range in the direct mapped memory side cache associated with an increased number of memory address conflicts, wherein memory address folding occurs when a plurality of the physical memory addresses accessed based on a certain access pattern of a certain workload are mapped to the same memory location in the direct mapped memory side cache; adjusting , at the OS page allocator, a page allocation policy that defines the physical pages allocated by the OS page allocator, wherein the adjusting includes allocating physical pages that avoid the first memory address range and the second memory address range. <EOS>