[Question] mm/resource: a mistake to use IORESOURCE_SYSRAM instead of IORESOURCE_SYSTEM_RAM?

From: Eric Ren <hidden>
Date: 2021-12-21 10:14:34

Hi David,

I feel confused on this piece of code:
void release_mem_region_adjustable(resource_size_t start, 
resource_size_t size)
{
... snip
/*
          * All memory regions added from memory-hotplug path have the
          * flag IORESOURCE_SYSTEM_RAM. If the resource does not have
          * this flag, we know that we are dealing with a resource coming
          * from HMM/devm. HMM/devm use another mechanism to add/release
          * a resource. This goes via devm_request_mem_region and
          * devm_release_mem_region.
          * HMM/devm take care to release their resources when they want,
          * so if we are dealing with them, let us just back off here.
          */
         if (!(res->flags & IORESOURCE_SYSRAM)) {
             break;
         }
The comment says IORESOURCE_SYSTEM_RAM while IORESOURCE_SYSRAM is 
actually used.
Is this a mistake?

The reason why I come to read about this is that, I got -EEXIST error from
add_memory_driver_managed() when I want to virtio_mem regions sitting on 
Reserved
memory region like this in /proc/iomem:
fffc0000-183fffffff : Reserved
   100000000-183fffffff : System RAM (virtio_mem)
     1820000000-183fffffff : System RAM (virtio_mem) // --> plugged MB
EEXIST error happens after plug -> unplug -> plug testing, because the
hot-added region remains after unplug. The hot-added region is under
Reserved region. The IORESOURCE_SYSRAM flag check will skips to handle
children of the Reserved region.
Thanks in advance!
Eric

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help