Lines Matching full:dm
585 static void post_status(struct hv_dynmem_device *dm);
1000 struct hv_dynmem_device *dm = &dm_device; in hot_add_req() local
1007 pg_start = dm->ha_wrk.ha_page_range.finfo.start_page; in hot_add_req()
1008 pfn_cnt = dm->ha_wrk.ha_page_range.finfo.page_cnt; in hot_add_req()
1010 rg_start = dm->ha_wrk.ha_region_range.finfo.start_page; in hot_add_req()
1011 rg_sz = dm->ha_wrk.ha_region_range.finfo.page_cnt; in hot_add_req()
1013 if ((rg_start == 0) && (!dm->host_specified_ha_region)) { in hot_add_req()
1038 dm->num_pages_added += resp.page_count; in hot_add_req()
1070 dm->state = DM_INITIALIZED; in hot_add_req()
1072 vmbus_sendpacket(dm->dev->channel, &resp, in hot_add_req()
1078 static void process_info(struct hv_dynmem_device *dm, struct dm_info_msg *msg) in process_info() argument
1091 dm->max_dynamic_page_count = *max_page_count; in process_info()
1134 static unsigned long get_pages_committed(struct hv_dynmem_device *dm) in get_pages_committed() argument
1137 dm->num_pages_ballooned + in get_pages_committed()
1138 (dm->num_pages_added > dm->num_pages_onlined ? in get_pages_committed()
1139 dm->num_pages_added - dm->num_pages_onlined : 0) + in get_pages_committed()
1153 static void post_status(struct hv_dynmem_device *dm) in post_status() argument
1184 num_pages_committed = get_pages_committed(dm); in post_status()
1187 vm_memory_committed(), dm->num_pages_ballooned, in post_status()
1188 dm->num_pages_added, dm->num_pages_onlined); in post_status()
1210 vmbus_sendpacket(dm->dev->channel, &status, in post_status()
1217 static void free_balloon_pages(struct hv_dynmem_device *dm, in free_balloon_pages() argument
1229 dm->num_pages_ballooned--; in free_balloon_pages()
1236 static unsigned int alloc_balloon_pages(struct hv_dynmem_device *dm, in alloc_balloon_pages() argument
1260 dm->num_pages_ballooned += alloc_unit; in alloc_balloon_pages()
1377 static void balloon_down(struct hv_dynmem_device *dm, in balloon_down() argument
1384 unsigned int prev_pages_ballooned = dm->num_pages_ballooned; in balloon_down()
1387 free_balloon_pages(dm, &range_array[i]); in balloon_down()
1392 prev_pages_ballooned - dm->num_pages_ballooned); in balloon_down()
1407 dm->state = DM_INITIALIZED; in balloon_down()
1414 struct hv_dynmem_device *dm = dm_dev; in dm_thread_func() local
1424 post_status(dm); in dm_thread_func()
1443 static void version_resp(struct hv_dynmem_device *dm, in version_resp() argument
1455 complete(&dm->host_event); in version_resp()
1465 if (dm->next_version == 0) in version_resp()
1472 version_req.version.version = dm->next_version; in version_resp()
1473 dm->version = version_req.version.version; in version_resp()
1481 dm->next_version = DYNMEM_PROTOCOL_VERSION_WIN7; in version_resp()
1485 dm->next_version = 0; in version_resp()
1489 ret = vmbus_sendpacket(dm->dev->channel, &version_req, in version_resp()
1500 dm->state = DM_INIT_ERROR; in version_resp()
1501 complete(&dm->host_event); in version_resp()
1504 static void cap_resp(struct hv_dynmem_device *dm, in cap_resp() argument
1509 dm->state = DM_INIT_ERROR; in cap_resp()
1511 complete(&dm->host_event); in cap_resp()
1521 struct hv_dynmem_device *dm = hv_get_drvdata(dev); in balloon_onchannelcallback() local
1537 version_resp(dm, in balloon_onchannelcallback()
1542 cap_resp(dm, in balloon_onchannelcallback()
1552 if (dm->state == DM_BALLOON_UP) in balloon_onchannelcallback()
1555 dm->state = DM_BALLOON_UP; in balloon_onchannelcallback()
1566 dm->state = DM_BALLOON_DOWN; in balloon_onchannelcallback()
1567 balloon_down(dm, in balloon_onchannelcallback()
1572 if (dm->state == DM_HOT_ADD) in balloon_onchannelcallback()
1574 dm->state = DM_HOT_ADD; in balloon_onchannelcallback()
1581 dm->host_specified_ha_region = false; in balloon_onchannelcallback()
1583 dm->ha_wrk.ha_page_range = *ha_pg_range; in balloon_onchannelcallback()
1584 dm->ha_wrk.ha_region_range.page_range = 0; in balloon_onchannelcallback()
1591 dm->host_specified_ha_region = true; in balloon_onchannelcallback()
1594 dm->ha_wrk.ha_page_range = *ha_pg_range; in balloon_onchannelcallback()
1595 dm->ha_wrk.ha_region_range = *ha_region; in balloon_onchannelcallback()
1601 process_info(dm, (struct dm_info_msg *)dm_msg); in balloon_onchannelcallback()
1890 struct hv_dynmem_device *dm = f->private; in hv_balloon_debug_show() local
1894 DYNMEM_MAJOR_VERSION(dm->version), in hv_balloon_debug_show()
1895 DYNMEM_MINOR_VERSION(dm->version)); in hv_balloon_debug_show()
1906 seq_printf(f, "%-22s: %u", "state", dm->state); in hv_balloon_debug_show()
1907 switch (dm->state) { in hv_balloon_debug_show()
1935 seq_printf(f, "%-22s: %u\n", "pages_added", dm->num_pages_added); in hv_balloon_debug_show()
1938 seq_printf(f, "%-22s: %u\n", "pages_onlined", dm->num_pages_onlined); in hv_balloon_debug_show()
1941 seq_printf(f, "%-22s: %u\n", "pages_ballooned", dm->num_pages_ballooned); in hv_balloon_debug_show()
1944 get_pages_committed(dm)); in hv_balloon_debug_show()
1947 dm->max_dynamic_page_count); in hv_balloon_debug_show()
2043 struct hv_dynmem_device *dm = hv_get_drvdata(dev); in balloon_remove() local
2047 if (dm->num_pages_ballooned != 0) in balloon_remove()
2048 pr_warn("Ballooned pages: %d\n", dm->num_pages_ballooned); in balloon_remove()
2050 hv_balloon_debugfs_exit(dm); in balloon_remove()
2052 cancel_work_sync(&dm->balloon_wrk.wrk); in balloon_remove()
2053 cancel_work_sync(&dm->ha_wrk.wrk); in balloon_remove()
2055 kthread_stop(dm->thread); in balloon_remove()
2072 list_for_each_entry_safe(has, tmp, &dm->ha_region_list, list) { in balloon_remove()
2084 struct hv_dynmem_device *dm = hv_get_drvdata(hv_dev); in balloon_suspend() local
2088 cancel_work_sync(&dm->balloon_wrk.wrk); in balloon_suspend()
2089 cancel_work_sync(&dm->ha_wrk.wrk); in balloon_suspend()
2091 if (dm->thread) { in balloon_suspend()
2092 kthread_stop(dm->thread); in balloon_suspend()
2093 dm->thread = NULL; in balloon_suspend()