We need to maintain the required Multisched configuration like sched_log, sched_priv and partition etc. information of its previous scheduling cycle. This helps in validating the Multisched configuration change only when required. And also this improves performance of Multisched to a good amount.
Added the respective watchers.
Currently at the end of each scheduler_iteration or intermediate scheduling cycle Multisched validates its configuration assuming that somebody/admins can change its configuration at any point in time i.e. during the intermediate scheduling cycles, before submitting a job, before job deletion etc.
In order to avoid this we at least maintain some sort of Multisched's previous cycle's configuration. This certainly helps in reducing the number of times we perform/validate configuration. We need to do validation only when the configuration is different from its previous cycle. This way Multisched performance is also improved to a better extent.
In addition to the above to achieve this goal we have to separate Multisched configuration change/applying it from setting the attribute scheduling to true i.e. configuration change should be applied in real time(immediately when admins change it irrespective of scheduling=true or not).
If scheduling=false then Multisched should apply its configuration but should not trigger scheduling cycle.