SlideShare a Scribd company logo
1 of 12
Download to read offline
BHyVe Hackathon

Activity Summary



                                       ©2003 Project TIMEMACHINE	




                   BHyVe Hackathon
                   July 29, 2012

                   Takeshi HASEGAWA
                   [ja] @hasegaw / [en] @hasegaw_en
Summary
Goal
•  Implement vmmls program to display the list of
   virtual machines

Result
•  Implemented vmmls
•  It also shows available memory




                                                    2
vmmls example




                3
vmmls
•  How
   –  Originally I tried to modify ls
   –  it was too rich, so finally I decided to write from scrach.


•  What it does
   –  List the virtual machines
      •  no considerable difficulties here
   –  Show amount of available memory
      •  Oh my god...




                                                                   4
Reporting available memory
•  I wanted to show how much memory available.

•  src/sys/amd64/vmm/vmm_mem.c has the avail
   memory pool which manages memory regions

•  vmm_mem_steal_memory()
   –  Add available memory on physical machine
      to the memory pool
•  vmm_mem_alloc(size_t size);
   –  Allocate memory to virtual machines
      from the memory pool
•  vmm_mem_free(vm_paddr_t start, size_t size);
   –  Return allocated memory
      to the memory pool

                                                  5
Reporting available memory(cont.)
•  BHyVe-sensei, I have a problem...

•  The memory management is really minimum
•  No one knows the amount of free memory!

•  Calculated the amount of free memory
   –  Added new function in vmm_mem.c
   –  Calculates the sum of length of available memory
      segments




                                                         6
Reporting available memory(cont.)
#define VMM_MEM_MAXSEGS 64

/* protected by vmm_mem_mtx */
static struct {
      vm_paddr_t    base;
      vm_size_t   length;
} vmm_mem_avail[VMM_MEM_MAXSEGS];




                                    7
Reporting available memory(cont.)


                        Host-Physical Memory
                        (not used by FreeBSD)	

                                    steal	


                          vmm_mem_avail	

    allo        ain	
        allo             ain	
   allo        ain	
     c	
        recl          c	
             recl     c	
        recl



    Guest A	
                       Guest B	
                Guest C	


                                                                          8
Reporting available memory(cont.)
•  Added the function to estimate available memory
  –  vmm_mem.c (in vmm.ko)


•  Added a new ioctl to allow access from userland
  –  VM_GET_FREEMEM
  –  vmm_dev.c … added a new ioctl implementation
  –  vmm_dev.h … added a new ioctl definition

•  Added a new function to libvmmapi
  –  vmmapi.c … added a new function API to get available
     memory amount

•  Enhanced vmmls command by using the new API
                                                            9
Again,,,




           10
Future work - 1
•  Refactor the Ioctl() interface for
   VM_GET_FREEMEM
   –  ioctl() access for vmm.ko is available only when one or
      more VMs exist
   –  Ioctl(*, VM_GET_FREEMEM, ...) doesn t work
      when no VMs exists!


•  More fancy APIs
   –  sysctl
       •  Good for reporting integer value
       •  Is it possible to read-callback handler?

   –  ioctl using another special file ‒ such as /dev/bhyve
       •  sysctl can handle only one value

                                                                11
Future work - 2
•  Review the fields shown by vmmls command
  –    Number of vCPUs
  –    Disk files the VM is opening
  –    Networks
  –    Time
        •  How much CPU time the VM consumed?
  –  Memory status
        •  I m sure what lowmem and highmem means...


  –  Event counters?
        •  Such as counter of VMEXIT...
        •  Another program, such as vmmstat should be more better
  –  etc etc

                                                                    12

More Related Content

What's hot

What's hot (10)

Using QEMU for cross development
Using QEMU for cross developmentUsing QEMU for cross development
Using QEMU for cross development
 
XPDS16: Keeping coherency on ARM - Julien Grall, ARM
XPDS16: Keeping coherency on ARM - Julien Grall, ARMXPDS16: Keeping coherency on ARM - Julien Grall, ARM
XPDS16: Keeping coherency on ARM - Julien Grall, ARM
 
XPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, Huawei
XPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, HuaweiXPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, Huawei
XPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, Huawei
 
Symfony 2 Best Practices
Symfony 2 Best PracticesSymfony 2 Best Practices
Symfony 2 Best Practices
 
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan HoracekOpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
 
XPDDS17: The dm_op hypercall and libxendevicemodel - Paul Durrant, Citrix
XPDDS17: The dm_op hypercall and libxendevicemodel - Paul Durrant, CitrixXPDDS17: The dm_op hypercall and libxendevicemodel - Paul Durrant, Citrix
XPDDS17: The dm_op hypercall and libxendevicemodel - Paul Durrant, Citrix
 
XPDDS17: Keynote: Towards a Configurable and Slimmer x86 Hypervisor - Wei Liu...
XPDDS17: Keynote: Towards a Configurable and Slimmer x86 Hypervisor - Wei Liu...XPDDS17: Keynote: Towards a Configurable and Slimmer x86 Hypervisor - Wei Liu...
XPDDS17: Keynote: Towards a Configurable and Slimmer x86 Hypervisor - Wei Liu...
 
XPDDS17: PVH Dom0: The Road so Far - Roger Pau Monné, Citrix
XPDDS17: PVH Dom0: The Road so Far - Roger Pau Monné, CitrixXPDDS17: PVH Dom0: The Road so Far - Roger Pau Monné, Citrix
XPDDS17: PVH Dom0: The Road so Far - Roger Pau Monné, Citrix
 
Project ACRN GVT-d introduction and tutorial
Project ACRN GVT-d introduction and tutorialProject ACRN GVT-d introduction and tutorial
Project ACRN GVT-d introduction and tutorial
 
Kdump
KdumpKdump
Kdump
 

Viewers also liked

qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所
Takeshi HASEGAWA
 

Viewers also liked (6)

20120922qpstudy terror 2
20120922qpstudy terror 220120922qpstudy terror 2
20120922qpstudy terror 2
 
IkaLog Presentation at Kansai Open Forum 2015
IkaLog Presentation at Kansai Open Forum 2015IkaLog Presentation at Kansai Open Forum 2015
IkaLog Presentation at Kansai Open Forum 2015
 
IkaLog Presentation for BMD users
IkaLog Presentation for BMD usersIkaLog Presentation for BMD users
IkaLog Presentation for BMD users
 
qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所
 
Eject-io (OSC2014 Tokyo/Fall 懇親会LT)
Eject-io (OSC2014 Tokyo/Fall 懇親会LT)Eject-io (OSC2014 Tokyo/Fall 懇親会LT)
Eject-io (OSC2014 Tokyo/Fall 懇親会LT)
 
IkaLog osc2016tf
IkaLog osc2016tfIkaLog osc2016tf
IkaLog osc2016tf
 

Similar to 20120729bhyve hackathon hasegaw_en

Implements BIOS emulation support for BHyVe
Implements BIOS emulation support for BHyVeImplements BIOS emulation support for BHyVe
Implements BIOS emulation support for BHyVe
Takuya ASADA
 
Understanding PHP memory
Understanding PHP memoryUnderstanding PHP memory
Understanding PHP memory
julien pauli
 
Dynamic Memory Management HyperV R2 SP1
Dynamic Memory Management HyperV R2 SP1Dynamic Memory Management HyperV R2 SP1
Dynamic Memory Management HyperV R2 SP1
Eduardo Castro
 
Dynamic Memory Management Hyperv 2008 R2 S
Dynamic Memory Management Hyperv 2008 R2 SDynamic Memory Management Hyperv 2008 R2 S
Dynamic Memory Management Hyperv 2008 R2 S
Eduardo Castro
 
Buiding a better Userspace - The current and future state of QEMU and KVM int...
Buiding a better Userspace - The current and future state of QEMU and KVM int...Buiding a better Userspace - The current and future state of QEMU and KVM int...
Buiding a better Userspace - The current and future state of QEMU and KVM int...
aliguori
 
Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0
guest72e8c1
 

Similar to 20120729bhyve hackathon hasegaw_en (20)

Implements BIOS emulation support for BHyVe
Implements BIOS emulation support for BHyVeImplements BIOS emulation support for BHyVe
Implements BIOS emulation support for BHyVe
 
Advancedperformancetroubleshootingusingesxtop 101110131727-phpapp02
Advancedperformancetroubleshootingusingesxtop 101110131727-phpapp02Advancedperformancetroubleshootingusingesxtop 101110131727-phpapp02
Advancedperformancetroubleshootingusingesxtop 101110131727-phpapp02
 
Understanding PHP memory
Understanding PHP memoryUnderstanding PHP memory
Understanding PHP memory
 
Dynamic Memory Management HyperV R2 SP1
Dynamic Memory Management HyperV R2 SP1Dynamic Memory Management HyperV R2 SP1
Dynamic Memory Management HyperV R2 SP1
 
Dynamic Memory Management Hyperv 2008 R2 S
Dynamic Memory Management Hyperv 2008 R2 SDynamic Memory Management Hyperv 2008 R2 S
Dynamic Memory Management Hyperv 2008 R2 S
 
Linux memory consumption
Linux memory consumptionLinux memory consumption
Linux memory consumption
 
IBM SmartCloud Enterprise Storage Demo
IBM SmartCloud Enterprise Storage DemoIBM SmartCloud Enterprise Storage Demo
IBM SmartCloud Enterprise Storage Demo
 
More on Virtualization 3.pptx
More on Virtualization 3.pptxMore on Virtualization 3.pptx
More on Virtualization 3.pptx
 
Buiding a better Userspace - The current and future state of QEMU and KVM int...
Buiding a better Userspace - The current and future state of QEMU and KVM int...Buiding a better Userspace - The current and future state of QEMU and KVM int...
Buiding a better Userspace - The current and future state of QEMU and KVM int...
 
RMLL / LSM 2009
RMLL / LSM 2009RMLL / LSM 2009
RMLL / LSM 2009
 
Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0
 
virtual machine.ppt
virtual machine.pptvirtual machine.ppt
virtual machine.ppt
 
Advanced performance troubleshooting using esxtop
Advanced performance troubleshooting using esxtopAdvanced performance troubleshooting using esxtop
Advanced performance troubleshooting using esxtop
 
Joyent's Bryan Cantrill: Experiences Porting KVM to SmartOS at KVM Forum, Aug...
Joyent's Bryan Cantrill: Experiences Porting KVM to SmartOS at KVM Forum, Aug...Joyent's Bryan Cantrill: Experiences Porting KVM to SmartOS at KVM Forum, Aug...
Joyent's Bryan Cantrill: Experiences Porting KVM to SmartOS at KVM Forum, Aug...
 
Experiences porting KVM to SmartOS
Experiences porting KVM to SmartOSExperiences porting KVM to SmartOS
Experiences porting KVM to SmartOS
 
Share and Share Alike
Share and Share AlikeShare and Share Alike
Share and Share Alike
 
Give Your Site a Boost with Memcache
Give Your Site a Boost with MemcacheGive Your Site a Boost with Memcache
Give Your Site a Boost with Memcache
 
What's new in System Center 2012 R2: Virtual Machine Manager
What's new in System Center 2012 R2: Virtual Machine ManagerWhat's new in System Center 2012 R2: Virtual Machine Manager
What's new in System Center 2012 R2: Virtual Machine Manager
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
Controlling Memory Footprint at All Layers: Linux Kernel, Applications, Libra...
Controlling Memory Footprint at All Layers: Linux Kernel, Applications, Libra...Controlling Memory Footprint at All Layers: Linux Kernel, Applications, Libra...
Controlling Memory Footprint at All Layers: Linux Kernel, Applications, Libra...
 

More from Takeshi HASEGAWA

More from Takeshi HASEGAWA (20)

FPGAx10_Sakura
FPGAx10_SakuraFPGAx10_Sakura
FPGAx10_Sakura
 
コンピュータエンジニアへのFPGAのすすめ
コンピュータエンジニアへのFPGAのすすめコンピュータエンジニアへのFPGAのすすめ
コンピュータエンジニアへのFPGAのすすめ
 
IkaLog20170316pynq_dist
IkaLog20170316pynq_distIkaLog20170316pynq_dist
IkaLog20170316pynq_dist
 
IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)
IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)
IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)
 
IkaLog: Data Collector for Splatoon and Machine Learning
IkaLog: Data Collector for Splatoon and Machine LearningIkaLog: Data Collector for Splatoon and Machine Learning
IkaLog: Data Collector for Splatoon and Machine Learning
 
#IkaLog によるスプラトゥーンの画像解析と機械学習
#IkaLog によるスプラトゥーンの画像解析と機械学習#IkaLog によるスプラトゥーンの画像解析と機械学習
#IkaLog によるスプラトゥーンの画像解析と機械学習
 
IkaLog and Deep Learning (20161122 GDLCjp)
IkaLog and Deep Learning (20161122 GDLCjp)IkaLog and Deep Learning (20161122 GDLCjp)
IkaLog and Deep Learning (20161122 GDLCjp)
 
IkaLog_FPGAStartup1
IkaLog_FPGAStartup1IkaLog_FPGAStartup1
IkaLog_FPGAStartup1
 
IkaLog_overview_en
IkaLog_overview_enIkaLog_overview_en
IkaLog_overview_en
 
ネットワークカメラを使った玄関前モニタリングの苦労話
ネットワークカメラを使った玄関前モニタリングの苦労話ネットワークカメラを使った玄関前モニタリングの苦労話
ネットワークカメラを使った玄関前モニタリングの苦労話
 
IkaLog Presentation v1.3
IkaLog Presentation v1.3IkaLog Presentation v1.3
IkaLog Presentation v1.3
 
IkaLog Presentation at qpstudy 2015.11
IkaLog Presentation at qpstudy 2015.11IkaLog Presentation at qpstudy 2015.11
IkaLog Presentation at qpstudy 2015.11
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
 
ssmjp October 2014
ssmjp October 2014ssmjp October 2014
ssmjp October 2014
 
Eject-io @ Kernel/VM
Eject-io @ Kernel/VMEject-io @ Kernel/VM
Eject-io @ Kernel/VM
 
Memory expansion
Memory expansionMemory expansion
Memory expansion
 
次世代I/Oインターフェイス「Eject-io」
次世代I/Oインターフェイス「Eject-io」次世代I/Oインターフェイス「Eject-io」
次世代I/Oインターフェイス「Eject-io」
 
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
 
RunningFreeBSDonLinuxKVM
RunningFreeBSDonLinuxKVMRunningFreeBSDonLinuxKVM
RunningFreeBSDonLinuxKVM
 
20111028ssmjp
20111028ssmjp20111028ssmjp
20111028ssmjp
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

20120729bhyve hackathon hasegaw_en

  • 1. BHyVe Hackathon Activity Summary ©2003 Project TIMEMACHINE BHyVe Hackathon July 29, 2012 Takeshi HASEGAWA [ja] @hasegaw / [en] @hasegaw_en
  • 2. Summary Goal •  Implement vmmls program to display the list of virtual machines Result •  Implemented vmmls •  It also shows available memory 2
  • 4. vmmls •  How –  Originally I tried to modify ls –  it was too rich, so finally I decided to write from scrach. •  What it does –  List the virtual machines •  no considerable difficulties here –  Show amount of available memory •  Oh my god... 4
  • 5. Reporting available memory •  I wanted to show how much memory available. •  src/sys/amd64/vmm/vmm_mem.c has the avail memory pool which manages memory regions •  vmm_mem_steal_memory() –  Add available memory on physical machine to the memory pool •  vmm_mem_alloc(size_t size); –  Allocate memory to virtual machines from the memory pool •  vmm_mem_free(vm_paddr_t start, size_t size); –  Return allocated memory to the memory pool 5
  • 6. Reporting available memory(cont.) •  BHyVe-sensei, I have a problem... •  The memory management is really minimum •  No one knows the amount of free memory! •  Calculated the amount of free memory –  Added new function in vmm_mem.c –  Calculates the sum of length of available memory segments 6
  • 7. Reporting available memory(cont.) #define VMM_MEM_MAXSEGS 64 /* protected by vmm_mem_mtx */ static struct { vm_paddr_t base; vm_size_t length; } vmm_mem_avail[VMM_MEM_MAXSEGS]; 7
  • 8. Reporting available memory(cont.) Host-Physical Memory (not used by FreeBSD) steal vmm_mem_avail allo ain allo ain allo ain c recl c recl c recl Guest A Guest B Guest C 8
  • 9. Reporting available memory(cont.) •  Added the function to estimate available memory –  vmm_mem.c (in vmm.ko) •  Added a new ioctl to allow access from userland –  VM_GET_FREEMEM –  vmm_dev.c … added a new ioctl implementation –  vmm_dev.h … added a new ioctl definition •  Added a new function to libvmmapi –  vmmapi.c … added a new function API to get available memory amount •  Enhanced vmmls command by using the new API 9
  • 10. Again,,, 10
  • 11. Future work - 1 •  Refactor the Ioctl() interface for VM_GET_FREEMEM –  ioctl() access for vmm.ko is available only when one or more VMs exist –  Ioctl(*, VM_GET_FREEMEM, ...) doesn t work when no VMs exists! •  More fancy APIs –  sysctl •  Good for reporting integer value •  Is it possible to read-callback handler? –  ioctl using another special file ‒ such as /dev/bhyve •  sysctl can handle only one value 11
  • 12. Future work - 2 •  Review the fields shown by vmmls command –  Number of vCPUs –  Disk files the VM is opening –  Networks –  Time •  How much CPU time the VM consumed? –  Memory status •  I m sure what lowmem and highmem means... –  Event counters? •  Such as counter of VMEXIT... •  Another program, such as vmmstat should be more better –  etc etc 12