Memory hotplug support in PowerKVM

October 9, 2015

Pre requisites
Basic hotplug operation
More options
Driving via libvirt
Debugging aids
Internal details


Memory hotplug is a technique or a feature that can be used to dynamically increase or decrease the amount of physical RAM available in the system. In order for the dynamically added memory to become available to the applications, memory hotplug should be supported appropriately at multiple layers like in the firmware and operating system. This blog post mainly looks at the emerging support for memory hotplug in KVM virtualization for PowerPC sPAPR virtual machines (pseries guests). In case of virtual machines, memory hotplug is typically used to vertically scale up or scale down the guest’s physical memory at runtime based on the requirements. This feature is expected to be useful for supporting vertical scaling of PowerPC guests in KVM Cloud environments.

In KVM virtualization, an alternative way to dynamically increase or decrease memory of the guest is to use memory ballooning. While memory ballooning requires cooperation between the guest and the host, memory hotplug is a deterministic way to grow and reduce the memory of the guest.

Pre requisites

Memory hotplug support for PowerPC sPAPR guests is now part of QEMU upstream and is expected to be available starting from QEMU-2.5 release. This implies that memory hotplug support is available for pseries machine types starting from pseries-2.5.

The memory hotplug support QEMU/KVM driver was added in 1.2.14 version of libvirt. Support in libvirt is mostly architecture neutral but some of the memory alignment requirements for PowerPC memory hotplug is being enforced from libvirt-1.2.20 which is the recommended version to exploit memory hotplug feature on PowerPC.

In addition to support in QEMU, libvirt and guest kernel (which btw has existed for a long time), some changes were done in PowerPC RAS tools also to support memory hotplug. The minimum version of these packages needed in the guest are listed below:

Package Minimum required version
powerpc-utils 1.2.26
ppc64_diag 2.6.8
librtas 1.3.9

rtas_errd daemon which is provided by ppc64_diag package needs to be running in the guest for memory hotplug to function correctly.

Basic hotplug operation

This section describes the steps to be followed by a QEMU user for memory hotplug operation.

* Start guest with those command line options required for memory hotplug.

qemu-system-ppc64 … –m 4G,slots=32,maxmem=32G

-m 4G will start the guest with initial 4G RAM size.
maxmem=32G specifies that this guest’s RAM can grow till 32G via memory hotplug operations.
slots=32 specifies the number of DIMM slots available for this guest to hotplug memory. Like in physical system, each memory hotplug operation is done by populating a DIMM slot in the guest. PowerPC supports a max of 32 DIMM slots of which only 31 are available for hotplug.

* Ensure that rtas_errd daemon is running inside the guest.

# ps aux | grep rtas
root      3685  0.7  0.0   5568  3712 ?        Ss   16:49   0:00 rtas_errd

# grep Mem /proc/meminfo
MemTotal:        4146560 kB
MemFree:         2908544 kB

* Connect to QEMU monitor from the host and issue memory hotplug commands

(qemu) object_add memory-backend-ram,id=ram0,size=1G
(qemu) device_add pc-dimm,id=dimm0,memdev=ram0
(qemu) info memory-devices
Memory device [dimm]: “dimm0”
addr: 0x100000000
slot: 0
node: 0
size: 1073741824
memdev: /objects/ram0
hotplugged: true
hotpluggable: true

Hotplugging memory from QEMU monitor is a 2 step operation. In the first step, we create a memory backend object which is memory-backend-ram (ram0) in the above example. Next pc-dimm device is added with ram0 as backing memory object.

* Check that RAM size grow in the guest

# grep Mem /proc/meminfo
MemTotal:        5195136 kB
MemFree:         3020160 kB

More options

In this section a few more options and other possibilities with memory hotplug are explored.

* NUMA guest – If the guest has NUMA topology, it is possible to do hotplug to a particular NUMA node of the guest.

qemu-system-ppc64 … -m 4G,slots=32,maxmem=32G -numa node,nodeid=0,mem=2G,cpus=0-7 -numa node,nodeid=1,mem=2G,cpus=8-15

Here the guest has 4G RAM divided between 2 NUMA nodes as can be seen by the below command in the guest.

# numactl -H
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7
node 0 size: 2020 MB
node 0 free: 1105 MB
node 1 cpus: 8 9 10 11 12 13 14 15
node 1 size: 2028 MB
node 1 free: 1674 MB
node distances:
node   0   1
0:  10  40
1:  40  10

node= can be specified explicitly with device_add command to hotplug to a given NUMA node.

(qemu) object_add memory-backend-ram,id=ram0,size=1G
(qemu) device_add pc-dimm,id=dimm0,memdev=ram0,node=1
(qemu) info memory-devices
Memory device [dimm]: “dimm0”
addr: 0x100000000
slot: 0
node: 1
size: 1073741824
memdev: /objects/ram0
hotplugged: true
hotpluggable: true

Verify the memory getting added to NUMA node 1 in the guest

# numactl -H
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7
node 0 size: 2020 MB
node 0 free: 971 MB
node 1 cpus: 8 9 10 11 12 13 14 15
node 1 size: 3052 MB
node 1 free: 2610 MB
node distances:
node   0   1
0:  10  40
1:  40  10

* Hugetlbfs backed guest

If  guest’s RAM is backed by hugetlbfs, then we could use memory-backend-file to add more memory via hotplug. Assume a guest is started with 16M hugepages like this:

qemu-system-ppc64 … -m 4G,slots=32,maxmem=32G -mem-path /dev/hugepages/hugetlbfs-16M

The hotplug is performed by using memory-backend-file object like this:

(qemu) object_add memory-backend-file,id=ram0,size=1G,mem-path=/dev/hugepages/hugetlbfs-16M
(qemu) device_add pc-dimm,id=dimm0,memdev=ram0,node=0
(qemu) info memory-devices
Memory device [dimm]: “dimm0”
addr: 0x100000000
slot: 0
node: 0
size: 1073741824
memdev: /objects/ram0
hotplugged: true
hotpluggable: true

* Migration

If a guest that has undergone memory hotplug operations needs to be migrated to another host, the memory backend objects and pc-dimm objects should be specified explicitly on the target side using -object and -device options respectively.

If following hotplug operation is done at the source,

(qemu) object_add memory-backend-ram,id=ram0,size=1G
(qemu) device_add pc-dimm,id=dimm0,memdev=ram0

then at the target host, the guest should be started with the following options:

qemu-system-ppc64 … -object memory-backend-ram,id=ram0,size=1G -device pc-dimm,id=dimm0,memdev=ram0 -incoming …

Driving via libvirt

This section describes the steps to perform memory hotplug for a guest that is managed by libvirt.

The guest XML needs to have the following bits:

<maxMemory slots=’32’ unit=’KiB’>33554432</maxMemory>
<memory unit=’KiB’>8388608</memory>
<currentMemory unit=’KiB’>4194304</currentMemory>
<cell id=’0′ cpus=’0-127′ memory=’8388608′ unit=’KiB’/>

This describes a single NUMA node guest with 4G memory, 32 slots and hotpluggable memory upto 32G.

Hotplug is done by using virsh.

# cat mem-2g.xml
<memory model=’dimm’>
<size unit=’KiB’>2097152</size>

# virsh attach-device <domain> mem-2g.xml
Device attached successfully

More information about other memory hotplug related options supported by libvirt are present here.

Debugging aids

Here are some nice-to-know details about memory hotplug that could come in handy when facing problems.

* Minimum hotplug granularity – The minimum DIMM size that can be hotplugged into sPAPR PowerPC guest is 256MB.
* Memory alignment – With the introduction of memory hotplug support, memory alignment requirements for pseries guests have become stricter. Now the initial RAM size, maxmem size and memory size of individual NUMA nodes must be aligned to 256MB failing which QEMU will refuse to start the guest. Also the DIMM/memory size that gets hotplugged is required to be aligned to 256MB.
* Hotplugging to memory-less NUMA node is not allowed.
* After memory hotplug support, pseries guests with maxmem beyond 1TB might not work. This is due to the limited buffer size that gets passed on from SLOF (guest firmware) to QEMU during ibm,client-architecture-support call that gets issued by the guest early during the boot.
* sPAPR PowerPC guests need a data structure called HTAB (hash table) that stores the virtual to physical page mappings for the guest. HTAB for guest is allocated by the host in host contiguous memory area (CMA) which is a limited resource (by default 5% of host RAM is CMA region). All guests running in the host get their HTAB allocated from this CMA region. HTAB size depends on the maxmem size and specifying huge values of maxmem for guest could result in failures like below:

qemu-system-ppc64 … -m 4G,slots=32,maxmem=1T
qemu-system-ppc64: Failed to allocate HTAB of requested size, try with smaller maxmem

In such cases lowering the maxmem is recommended.

* Typically it is expected that rtas_errd daemon is running in the guest before any memory hotplug operation is attempted. If rtas_errd isn’t running, the memory hotplug operation is reported as success at QEMU monitor or by virsh. However the added memory doesn’t get reflected in the guest. Starting rtas_errd would make all those previously added memory to appear in the guest. Also a reboot of the guest would result in such memory to appear in the guest after the reboot.
* libvirt managed guests need to be NUMA aware (at least 1 NUMA node should be defined in the XML) for supporting memory hotplug. This limitation is likely to be relaxed soon.

Internal details




* libvirt NUMA node relaxation
* In-kernel hotplug
* Memory hot removal or unplug.


Trek to Devkara falls

October 2, 2015

Devkara is a small village present in the border area of Yellapura and Karwar. Now it is mostly an abandoned village thanks to relocation after Kadra and Kodasalli dam projects.  But this village hides a natural treasure, a spectacular waterfalls which the locals call Devkara Vajra. Devkara stream falling from approximately 200-300m height near Devkara village forms this waterfalls. Devkara stream  eventually joins the Kali river. This falls can be approached from the Kadra side as well as from Yellapura side. Here is my story of multiple attempts to reach this waterfalls from Yellapura side.

1st attempt

In May 2014, my brother-in-law and I rode a bike from Sonda, Sirsi, traveled to Yellapura and then to ಈರಾಪುರ village. We hardly had any information about the falls then and unfortunately we couldn’t reach anywhere near the waterfalls. All we could get was this distant view of the Kodasalli back waters.

Kodasalli backwaters

Kodasalli backwaters

However we did establish a local contact who agreed to take us to the falls next time.

2nd attempt

I was at Sonda, Sirsi in the first week of Oct 2014 and took that opportunity to revisit Devkara falls. This time we reached the local contact’s place at  ಈರಾಪುರ village and started trekking in the forest route at 10AM. Along with the guide, our local contact was accompanying us with his school going son. The guide took us on a circuitous route and we first reached very close to Kodasalli reservoir at 11.30AM.

Kodasalli dam

Kodasalli dam

We were walking on a mountain range overlooking a valley in which Kali river was flowing. On the opposite side of the river was another range where the waterfalls was present. After walking through the forest for an hour, we finally emerged out on top of the mountain range at 12.30PM. This place was called ಹಬ್ಬು ಕೋಟೆ/ಕಟ್ಟೆ and it provided good view of the distant waterfalls. From that far off distance the falls looked so big and we wondered how gigantic it would it appear from the base. Unfortunately we hadn’t planned for a day long trek and we were just carrying a few raw cucumbers and butter milk which we completely finished at ಹಬ್ಬು ಕೋಟೆ.

Distant view of Devkara falls

Distant view of Devkara falls

Since reaching the base of the falls from here was out of question, our guide offered us to take us around a bit and show us a few places of interest. Thus we proceeded ahead on the same mountain range and reached a place called ದೇವಿಮನೆ. This is some sacred place in the hills where the villagers would come and offer prayers once in a year in November. From this place we did venture ahead a bit to get a clear view of Kadra reservoir. Instead of returning back via the same route, our guide suggested that we could do a full circle by getting down to Devkara village and then climb up ಬೆಂಡೆಘಟ್ಟ to reach back ಈರಾಪುರ village. We didn’t really know how much time and effort that would take, but just agreed.

After a steep descent we were at Devkara village at 3PM. The village is mostly deserted with a few houses still remaining. There is a Ramalingeshwara temple in the village where Pooja is done once a week. A priest comes from a far off distance every Monday for this purpose.

Devkara village

Devkara village

Ramalingeshwara temple, Devkara

Ramalingeshwara temple, Devkara

We were now walking beside the Kali river. A trail exists from Devakara till ಬೆಂಡೆಘಟ್ಟ, but were dead tired since we hardly had any solid food since morning. The journey seemed endless and we finally reached the foothills of ಬೆಂಡೆಘಟ್ಟ at 4.15PM. The climb up is abruptly steep and it took quite a bit of effort and time to reach the top at around 5.30PM. Our enterprising guide could find some tender coconuts in an abandoned house and that came as a big relief to us. But the relief was short lived as it started raining. By the time we reached our local contact’s house, we were completely drenched. We consumed the food that we we had planned to have for lunch here and started back on bike towards Sonda at around 6.30PM. Next 60km drive through the winding forest roads was mostly treacherous with non-stop hard rain. Our adventure finally ended when we reached home at 9PM.

3rd attempt

Though we had seen the waterfalls, that was hardly satisfying since we hadn’t been able to reach the base of the falls. So last week we made another attempt to reach the falls. This time I took Naren with me to my in-laws place. My brother-in-law found a person from Devkara village itself who had relocated to Sonda. He was ready to guide us and we thought our 3rd attempt should be a success since the guide was born and brought up in Devkara village and he should be able to guide us to the base of the falls.

4 of us started in 2 bikes at 8AM from Sonda and reached ಈರಾಪುರ village at 10AM. Thanks to two wheelers, we were able to cover some trail distance too on bike. At 10.30AM we were at the starting point of ಬೆಂಡೆಘಟ್ಟ (470m) from where we had to descend. At 11AM we reached 130m and touched a flowing stream locally called  ಈರಾಪುರ stream which eventually becomes Kali river.  We walked towards Devkara village alongside the stream and at one point, the falls becomes visible towards our left.

At 11.45AM, we reached 70m and crossed the stream which was utmost knee deep. Next we had to cross another stream that flows from Devkara falls and joins the stream that we just crossed. This stream was flowing with good speed and we had to find a suitable place to crossover. Thanks to our guide, we did find a reasonably safe place to cross the stream where the water was thigh deep at places. We were able to cross it with reasonable ease using sticks for support. We were now at the periphery of Devkara village and were walking along a few abandoned houses and paddy fields.


Next it was some hide and seek with the waterfalls as it is located in such a place covered with dense forest towards its approach that it is not visible at every point on the approach path. There was no well defined path to the falls, but we had to make one by clearing the forest growth and following the general direction of the waterfalls.

Devkara falls

Devkara falls

At 1PM we reached a rocky clearance from where the falls was visible fairly clearly. Based on our last year’s experience, we weren’t taking chances with food and hence were carrying sufficient amount of Pulao, home grown cucumbers, butter milk and ಚಕ್ಕುಲಿ. We finished lunch on these rocks. We had still not reached the exact base of the falls and hence ventured into the forests a bit more to check if better view of the falls could be had. At 2PM we reached another rocky clearance from where we had a decent view of the falls. We decided to end the quest here since the path ahead to the ultimate base of the falls was difficult and it was already well past midday.


On the way back, it took two hours for us to reach ಬೆಂಡೆಘಟ್ಟ base and after an hour we were back at ಈರಾಪುರ village. Thus on the third attempt, we finally had satisfying views of Devkara falls! It was not just about the falls, but this also turned out to be good trek worth remembering after my previous trek in the same area.

2014 in review

December 30, 2014

The stats helper monkeys prepared a 2014 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 31,000 times in 2014. If it were a concert at Sydney Opera House, it would take about 11 sold-out performances for that many people to see it.

Click here to see the complete report.

द्वादश आदित्याः (12 Suns)

October 17, 2014

It is very common in Sanskrit to represent a group of related things by means of a Shloka for easy remembrance. One such famous Shloka is the below one which salutes the 9 Grahas (Planets).

नमः सूर्याय सोमाय मङ्गलाय बुधाय च |
गुरुशुक्रशनिभ्यश्च राहवे केतवे नमः ||

In my last blog, I wrote about 12 names of Sun and the Surya Namaskara Mantras based on each of them. These 12 names of Sun are:

द्वादश आदित्याः

1. मित्रः
2. रविः
3. सूर्यः
4. भानुः
5. खगः
6. पूषा
7. हिरण्यगर्भः
8. मरीचिः
9. आदित्यः
10. सविता
11. अर्कः
12. भास्करः

Here is an attempt by me to consolidate these 12 names of Sun in the form of Shlokas. Since I know only Anushtup Chandas (meter), I am limited by 32 letters in each Shloka and hence had to resort to two Shlokas to cover all the names.

मित्राय रविसूर्याभ्यां भानवेऽपि खगाय च|
पूष्णे हिरण्यगर्भाय सर्वेभ्योऽपि नमो नमः || 1 ||

पूजयामि मरीचिञ्च आदित्यञ्च भजाम्यहम् |
अर्चयामि सवित्रर्कौ सेवयामि च भास्करम् || 2 ||

The above two Shlokas basically salute the Sun and offer worship to the Sun taking each of his 12 names in the order mentioned above.

संस्कृतं न जानामि न जानामि पाणिनिम्।
पदार्थमपि न जानामि क्षमस्व वागीश्वरि॥

Surya Namaskara Mantras

October 12, 2014

Suryanamaskara is typical done in the sets of 12 and each iteration is usually preceded by a Mantra which involves salutation to Sun using his various names. I have given the Mantras in Kannada as well as Sanskrit here. The short form (which is what is chanted during the Suryanamaskara) and the long form (Shloka from which it is derived) are given here.

Suryanamaskara is usually started by chanting this Shloka:

ಹಿರಣ್ಮಯೇನ ಪಾತ್ರೇಣ ಸತ್ಯಸಾಪಿಹಿತಂ ಮುಖಂ|
ತತ್ ತ್ವಂ ಪೂಷನ್ ಅಪಾವೃಣು ಸತ್ಯಧರ್ಮಾಯ ದೃಷ್ಟಯೇ ||

हिरण्मयेन पात्रेण सत्यस्यापिहितं मुखम् |
तत्त्वं पूषन् अपावृणु सत्यधर्माय दृष्टये ||

Each iteration is then preceded by the following Mantras in the order given:

1. ಓಂ ಹ್ರಾಂ ಮಿತ್ರಾಯ ನಮಃ, ॐ ह्रां मित्राय नमः

ಮಿತ್ರಾಯ ಲೋಕಮಿತ್ರಾಯ ಕಂಜ ಮಿತ್ರಾಯ ತೇ ನಮಃ|
ಆಮಿತ್ರಹಾರಿಣೇ ತುಭ್ಯಂ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ||

मित्राय लोकमित्राय कञ्ज मित्राय ते नमः |
आमित्रहारिणे तुभ्यं भास्कराय नमो नमः ||

2. ಓಂ ಹ್ರೀಂ ರವಯೇ ನಮಃ, ॐ ह्रीं रवये नमः

ರವಯೇ ರತ್ನಗರ್ಭಾಯ ರಾಜೀವಾಕ್ಷಾಯ ರಾಜಿನೇ |
ರಾಮಾಯ ರಮಣೀಯಾಯ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

रवये रत्नगर्भाय राजीवाक्षाय राजिने |
रामाय रमणीयाय भास्कराय नमो नमः ||

3. ಓಂ ಹ್ರ್ರೂಂ ಸೂರ್ಯಾಯ ನಮಃ, ॐ ह्रूं सूर्याय नमः

ಸೂರ್ಯಾಯ ಸುರನಾಥಾಯ ಸುಖಾಯ ಸುಖದಾಯ ಚ |
ಸುರೂಪಾಯ ಸುಭೂಷಾಯ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

सूर्याय सुरनाथाय सुखाय सुखदाय च |
सुरूपाय सुभूषाय भास्कराय नमो नमः ||

4. ಓಂ ಹ್ರೈಂ ಭಾನವೇ ನಮಃ, ॐ ह्रैं भानवे नमः

ಭಾನವೇ ಭವದೇಮಾಯ ಭಯಾಯ ಭಯಹಾರಿಣೇ |
ಭೋಗೀಶಾಯ ಭವಜ್ಞಾಯ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

भानवे भवदेवाय भयाय भयहारिणे |
भोगीशाय भवज्ञाय भास्कराय नमो नमः ||

5. ಓಂ ಹ್ರೌಂ ಖಗಾಯ ನಮ:, ॐ ह्रौं खगाय नमः

ಖಗಾಯ ಖಗಹಂತ್ರೇ ಚ ಖದ್ಯೋತಾಯ ಖಗಾಂಶವೇ |
ಖಗರೂಪಾಯ ದೇವಾಯ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

खगाय खगहन्त्रे च खद्योताय खगांशवे |
खगरूपाय देवाय भास्कराय नमो नमः ||

6. ಓಂ ಹ್ರಃ ಪೂಷ್ಣೇ ನಮಃ, ॐ ह्रः पूष्णे नमः

ಪೂಷ್ಣೇತು ಪೂರ್ವಪುಣ್ಯಾಯ ಪುರಾಣ ಪುರುಷಾಯ ಚ |
ಪುಷ್ಕರಾಕ್ಷಾಯ ಪುಣ್ಯಾಯ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

पूष्णे तु पूर्वपुण्याय पुराणपुरुषाय च |
पुष्कराक्ष्याय पुण्याय भास्कराय नमो नमः ||

7. ಓಂ ಹ್ರ್ರಾಂ ಹಿರಣ್ಯಗರ್ಭಾಯ ನಮಃ, ॐ ह्रां हिरयगर्भाय नमः

ಹೇಮವರ್ಣ ಸ್ವರೂಪಾಯ ಕಾಮಕ್ರೋಧ ಹರಾಯ ಚ |
ಹಿರಣ್ಯಗರ್ಭದೇಹಾಯ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

हेमवर्ण स्वरूपाय कामक्रोध हराय च |
हिरण्यगर्भदेहाय भास्कराय नमो नमः ||

8. ಓಂ ಹ್ರೀಂ ಮರಿಚಯೇ ನಮಃ, ॐ ह्रीं मरीचये नमः

ಮರಿಚಯೇ ಮಹೇಶಾಯ ಮಾಧವಾಯ ಮುರಾರಯೇ |
ಮಂತ್ರಾಯ ಮಂತ್ರರಾಜಾಯ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

मरीचये महेशाय माधवाय मुरारये |
मंत्राय मंत्रराजाय भास्कराय नमो नमः ||

9. ಓಂ ಹ್ರ್ರೂಂ ಆದಿತ್ಯಾಯ ನಮಃ, ॐ ह्रूं आदित्याय नमः

ಆದಿತ್ಯಾದಿ ರೂಪಾಯ ಆಕಾಶಪತಯೇ ನಮಃ |
ಆರೋಗ್ಯದಾಯ ಆರ್ಯಾಯ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

आदित्यादि रूपाय आकाशपतये नमः |
आरोग्यदाय आर्याय भास्कराय नमो नमः ||

10. ಓಂ ಹ್ರೈಂ ಸವಿತ್ರೇ ನಮಃ, ॐ ह्रैं सवित्रे नमः

ಸವಿತ್ರೇ ಸರ್ವಲೋಕಾಧಿಪತಯೇ ಸರ್ವದಾಯ ಚ |
ಸರ್ವಾಭೀಷ್ಟ ಪ್ರದೇಚೈವ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

सवित्रे सर्वलोकाधिपतये सर्वदाय च |
सर्वाभीष्ट प्रदेचैव भास्कराय नमो नमः ||

11. ಓಂ ಹ್ರೌಂ ಅರ್ಕಾಯ ನಮ:, ॐ ह्रौं अर्काय नमः

ಅರ್ಕಾಯಾಕ್ಷರ ರೂಪಾಯ ಅಚ್ಯುತಾಯ ಮರಾಯ ಚ |
ಅನ್ನದಾಯನ್ನರೂಪಾಯ ಭಾಸ್ಕರಾಯ ನಮೋ ನಮಃ ||

अर्कायाक्षररूपाय अच्युताय मराय च |
अन्नदायन्नरुपाय भास्कराय नमो नमः ||

12. ಓಂ ಹ್ರಃ ಭಾಸ್ಕರಾಯ ನಮಃ, ॐ ह्रः भास्कराय नमः

ಭಾನೋ ಭಾಸ್ಕರ ಮಾರ್ತಾಂಡ ಚಂಡರಶ್ಮೇ ದಿವಾಕರ |
ಆರೋಗ್ಯಮಾಯುರ್ವಿಜಯಂ ಪುತ್ರಾನ್ ದೇಹಿ ನಮೋಸ್ತುತೇ ||

भानो भास्कर मार्ताण्ड चण्डरश्मे दिवाकर |
आरोग्यमायुर्विजयं पुत्रान् देहि नमोस्तुते ||

संस्कृतं न जानामि न जानामि पाणिनिम्।
पदार्थमपि न जानामि क्षमस्व वागीश्वरि॥

Books for Life

September 27, 2014

I have been collecting books (and of course reading them!) for a long time now and realized that lately I have acquired quite a few “complete series” kind of books. Now when my existing book shelf
is unable to accommodate the new additions, I thought of writing about a few books that are close to my heart.

Sriman Mahabharata

This is a monumental work that provides simple Kannada translation of Vyasa Mahabharata. Published by Bharatha Darshana, this work consists of 32 volumes with more than 600 pages in each volume. I have been looking for this kind of work in Kannada which provides just the faithful translation of the original Sanskrit Shlokas and nothing else. Though this work doesn’t list and provide full translation of 100000 Mahabharata Shlokas, it includes quite a few shlokas in each of the version. Bharatha Darshana staff tell me that they have included only the important Shlokas but for the rest only the translation exists in the books. For those who want basic translations without any
interpretation of all 100000 Shlokas of Mahabharata, Gita Press provides such a series, but it is in Hindi.


This entire series costs Rs. 2300 which comes to around Rs 75 per book. Needless to say that the price is heavily subsidized.


Srimadvalmiki Ramayana

Last year I purchased this 3 volume series of Valmiki Ramayana in Kannada from Gita Press. These books provide basic Kannada translation of all the 24000 Shlokas from 7 Khandas of Valmiki Ramayana. I am actively reading this work from last year and till now completed Bala, Ayodhya and Aranya Khandas. I always wanted to read and understand the original Shlokas of Ramayana and this book is exactly serving the purpose. I have now acquired enough hold in Sanskrit language that I can follow the Sanskrit Shlokas with some help from the Kannada translation present in this book. I am
thoroughly enjoying this book both from Kavya perspective and the Sanskrit language learning perspective and I usually manage to read and understand at least one Sarga in a day. After reading 3
Khandas, I am realizing that we have been fed with many wrong interpretations of Ramayana which I plan to write about separately some other time.


This 3 volume set costs around Rs.600 which is of course heavily subsidized considering the paper and printing quality.

Kumaravyasa Bharata

Sometime back I happened to read Kuvempu’s autobiography Nenapina Doniyalli which includes hundreds of his poems. This inspired me to read (and of course write!) Kannada poetry and I bought Kumaravyasa Bharata edited and translated by A R Seturamrao. This book provides Kannada translation/interpretation of Kumaravyasa’s (aka Gadugina Naranappa) epic work Kumaravyasa Bharata aka Gadugina Bharata. In Kumaravyasa Bharata, Kumaravyasa has retold Vyasa Mahabharata in the form of Kannada poetry composed in Bhamini Shatpadi meter. For Kannadigas, this is like what Tulasidas Ramayana is for Hindi speaking population and it used to be the primary source of Mahabharata for my parents’ generation where singing, listening and interpreting the verses from Kumaravyasa Bharata used to be favorite evening pass time in many households.


The liberal amount of Ganjifa art work throughout the book by Ganjifa Raghupathi Bhatta is an added attraction in this book.

Anything related to Mahabharata must be huge and so is this book comprising of 1300 pages. With high quality paper and printing, this single book costs Rs. 2500. This is the most expensive single
book that I have invested in till now!

Rigveda Samhita

The word Veda is so commonplace to us that I am sure most of us don’t know or never had opportunity to really know what’s in Vedas.  In 1950s, Mysore Maharaja Jayachamarajendra Wadiyar brought together a team of Vidwans led by H. P Venkatrao to provide a version of Rigveda for Kannada speaking population. This monumental work resulted in a series of 36 books which are now being reprinted by Kannada and Culture Department, Government of Karnataka. This book lists each Rigveda Mantra, with word by word listing of the Mantra, description of it from Sayanacharya’s Bhashya, word by word meaning, translation, English translation, special notes and grammar notes.


This is a collector’s item and over last few years, I have managed to collect all 36 volumes with the intention of reading them after my retirement 🙂 However quite a few retired people are advising me to finish this reading before retirement as their experience tells them that such work can’t be done with reduced mental faculties of old age!


Each volume has more than 750 pages with high quality print and paper. Each volume is available for a subsidized average price of Rs 250 per volume.

The History and Culture of Indian People

I picked up this series from Bharatiya Vidya Bhavan mainly as a reference book and not really for page-to-page reading. This is a set of 11 books covering Indian History from Vedic age till



Shivaram Karanthara Sahitya Shreni

This is a series of books over 25 volumes that aims to include the complete works of Kannada writer K Shivaram Karanth. This was published by Kannada and Culture Department, Govt of Karnataka. Most of his novels and plays are included in these books. Each book has 2 novels and when I bought this, each book was available for as low as Rs.50!



The complete works of Swami Vivekananda

This is a set of 9 books (when I bought long time back) that includes Swami Vivekananda’s writings, lectures, discourses and more. Published by Advaita Ashrama Kolkata, it is generally available in Ramakrishna Ashram book shops.



DVG’s Jnapaka Chitrashale

This is a series of 8 books written by D V Gundappa (of Manku Thimmana Kagga fame) which describe certain aspects of DVG’s association and experiences with different kinds of people whom he came across throughout his life. He has categorized them into different categories like “common people”, “Patrons of Art” etc. This series should give a good insight into the life of DVG






पक्षिणः जननम् (Birth of Bulbuls)

June 29, 2014
मम गृहस्य परिसरे विद्यमानानां पक्षिणः विषये अत्र, अत्रअत्र पूर्व्ं मया लिखितमस्ति | गृहसस्याणि खगान् आकर्षयन्ति इति विचारे मम गृहमेव प्रमाणमित्यहं मन्ये| एकदा पाकशालायाः नालिकायामेव नीडनिर्माणं कृतं पक्षिणा| अद्यत्वे द्वौ पक्षिणौ अस्माकमुद्याने निवेशनं कृत्वा शिशू प्राप्तवन्तौ । अस्य वृत्तन्तस्य विवरणं करोमि अत्र|
Bulbul's nest

Bulbul’s nest

उद्यानस्य एकस्मिन् भागे मल्लिका लता अस्ति। तत्र वयं अनेकवारं न गच्छामः । एकदा तस्यां लतायां नीडमेकं दृष्टवान् । सामान्यतः पक्षी सुरक्षितस्थले नीडस्य रचनं करोति, किन्तु एतत् नीडं भूम्याः निकटे एव आसीत्। अपि च नीडे अल्पाकारयुक्तौ पिङ्गलवर्णबिन्दुयुक्तौ द्वौ अण्डौ आस्तां!

Bulbul's eggs

Bulbul’s eggs

अण्डं तु दृष्टवान् किन्तु कस्य खगस्य अण्डमिति ज्ञातुं पार्श्वे स्थित्वा पक्षिणः निरीक्षणं कृतवान्|  किञ्चित्कालानन्तरं नीडस्योपरि उपविशन्तं मस्तके किरीटसदृश पक्षयुक्तं पक्षिणं दृष्टवान्| एषः पक्षी बेङ्गलूरु-नगरे सामान्यतः दृश्यते| अस्य नाम आङ्गलभाषायां Red-whiskered Bulbul इति अस्ति| K N Dave महोदयेन लिखितं “Birds in Sanskrit Literature” पुस्तके अस्य नाम गोवत्सकः इति दत्तमस्ति|

Red-whiskered bulbul

Red-whiskered bulbul

पश्चात् नितराम् नीडे एव उपविशन्तं पक्षिणं दृष्टवन्त:। दिनद्वयानन्तरम् अण्डाभ्यां द्वौ अरोमयुक्तौ शिशू बहिरागतवन्तौ। जन्मस्य तत्क्षणं तौ पक्षिणः शिशवः इव न दृश्येते स्म ।

Bulbul chicks - right after birth

Bulbul chicks – right after birth

यदा द्वित्राणि दिनानि अतीतानि, रोमं पक्षं च प्रप्तवन्तौ। शिशोः प्रथम-उड्डयनं द्रष्टुम् अस्माकम् आशा आसीत् किन्तु कदा पक्षिण: सर्वे नीडं त्यक्तवन्तः इति न अवगतमेव अस्माभिः!

4 days old bulbul chicks

4 days old bulbul chicks

संस्कृतं न जानामि न जानामि पाणिनिम्।
पदार्थमपि  न जानामि क्षमस्व वागीश्वरि॥