les outils de supervision libres -...
TRANSCRIPT
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Les outils de supervision libresLes outils de supervision libres
Olivier Jan
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
La SupervisionLa Supervision✔ Une des fonctions de l'administration des SI
✔ Fonction clé de plusieurs normes et standards●OSI System Management Overview [ISO-10040]●ITIL
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Pourquoi superviser ?Pourquoi superviser ?
Détecter les pannes avant l'utilisateur
Réagir plus rapidement en cas d'incident
Anticiper les problèmes
Contrôler et rendre compte
Pilotage de l'exploitation
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Quoi superviser ?Quoi superviser ?
Environnement Matériel Réseau Système Bases de données Services (HTTP, SMTP, LDAP...) Applications Sécurité
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Pour qui superviser ?Pour qui superviser ?
Dirigeants (DSI...) : Performance et disponibilité (SLA)
Administrateurs : Technique et diagnostic
Utilisateurs : Performance et disponibilité
Financier : Comptabilité et facturation
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Comment superviser ?Comment superviser ?
Actif Passif
Sans agent Avec un agent
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Standards de la supervisionStandards de la supervision
SNMP - Simple Network Management Protocol IPMI - Intelligent Platform Management Interface JMX - Java Management Interface CIM - Common Information Model SBLIM - Standard Based Linux Instrumentation for Manageability WS-MANAGEMENT - Web Services for Management WBEM - Web Based Enterprise Management WMI - Windows Management Instrumentation
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Découpe fonctionnelleDécoupe fonctionnelle
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Résumé d'une démarcheRésumé d'une démarcheQue veut-on superviser?Bien qualifier le périmètrePrésent et à venir (cartographie, dépendances,…)
Penser à une gestion de la configuration (Existe-t-elle ?)
Pourquoi met-on en place une supervision?Quels sont les problèmes actuels?Problèmes techniques et fonctionnels
Problèmes de communication (workflow)
En quoi la supervision peut-elle nous aider à les résoudre?
Pour qui met-on en place une supervision?Qui va gérer la supervision?
Qui va utiliser la supervision?
Qui va être acteur sur les informations remontées?
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Le marché de la supervisionLe marché de la supervision
● Le Big 4
– Tivoli
– BMC
– Unicenter
– OpenView
● Le Little 4
– GroundWorks Monitor
– Zenoss
– Hyperic HQ
– Zabbix
Propriétaire Open Source
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Pourquoi choisir un logiciel FOSS ?Pourquoi choisir un logiciel FOSS ?
Une implémentation ratée d'un logiciel commercial De multiples outils pour superviser l'ensemble du SI Des applications critiques et spécifiques Expertise interne forte en Open Source
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Avantages FOSSAvantages FOSS Le code source L'interopérabilité Les coûts non liés au périmètre Possibilité de superviser des applications internes qui n'ont pas
de connecteur "propriétaire" Implémentation en hyperviseur (consolidation de systèmes
spécialisés comme Dell Open Manage. Un développement collaboratif et ouvert Le prix parce que l'on déploie uniquement ce dont on a besoin Moins d'administration car on n'administre que ce qu'on installe Des coûts d'extension plus faible Des coûts matériels plus faibles
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Le marché de la supervision FOSSLe marché de la supervision FOSS
– Nagios
– Zenoss
– Hyperic HQ
– Zabbix
– OpenNMS
– Pandora FMS
– Collectd
– Monit
– NEDI
– 8Pussy
– MRTG et RRDTool
– Cacti
Solutions complètes Outils spécialisés
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Pourquoi Nagios ?Pourquoi Nagios ?
✔ 10 ans (logiciel éprouvé)✔ 100 % Open Source✔ Carnet de route clair et détaillé✔ Standard de facto✔ Interopérabilité✔ Communauté de 250 000 utilisateurs✔ Support professionnel
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Nagios, les dérivésNagios, les dérivés
Dans le monde
GroundWorks MonitorOpsViewOP5Snag View
En france
CentreonVigiloFANEye Of The Network
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Architecture Active NagiosArchitecture Active Nagios
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Architecture Passive NagiosArchitecture Passive Nagios
static void sync_icache_030(addr_t address,size_t len){int l,off;char*p;uint32 cacr;off=(unsigned int)address&(CACHELINE-1); len+=off;l=len;p=(char*)address-off;asm volatile("nop");asm volatile("movec %%cacr,%0":"=r"(cacr):);cacr|=0x00000004;/**/do{asm volatile("movec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\naddq.l #4,%0\nmovec %0,%%caar\nmovec %1,%%cacr\n"::"r"(p),"r"(cacr));p+= CACHELINE;} while((l-=CACHELINE)>0);asm volatile("nop");}static void set_pgdir(void*rt){long_page_directory_entry entry;*(uint64*)&entry=DFL_PAGEENT_VAL;entry.type=DT_ROOT;entry.addr=TA_TO_PREA(((addr_t)rt));asm volatile("pmove (%0),%%srp\npmove (%0),%%crp\n"::"a"((uint64*)&entry));}struct m68k_vm_ops m68030_vm_ops={_m68k_translation_map_get_pgdir,m68k_vm_translation_map_init_map,m68k_vm_translation_map_init_kernel_map_post_sem,m68k_vm_translation_map_init,m68k_vm_translation_map_init_post_area,m68k_vm_translation_map_init_post_sem,m68k_vm_translation_map_early_map
Questions ? / Réponses ?
Remerciements
Rendez-vous sur nagios-fr.org