X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ff021a73f0cd26b2f27ca729783aa486393f9b3a..2d4f44983b405f88e6320243ef5781d0d654618c:/TODO diff --git a/TODO b/TODO index 15ca38de3a..512068f96f 100644 --- a/TODO +++ b/TODO @@ -1,30 +1,79 @@ -* Use of data on the stack as argument to MsgNew does not work -* Warn when using a server socket to write, or a client one to poll +- a way to get the network proximity (needed by Pastry, at least) + +- pull method of source diffusion in graspe-slave + +- Use a xbt_set for gras_procdata_t->libdata instead of a dict + so that the search can be linear. + +[sorry for the parts in french :] + +### +### Very soon +### + +- tcp->incoming_socks + sock specific tcp (buffsize) useless + +### +### Soon +### + +- gras_os_getload + +- gras_datadesc_import_nws? + +- meassock + Check that messages don't go on meas socks + Implement it + +- Implement gras_datadesc_cpy to speedup things in the simulator + For now, we mimick closely the RL when on simulator, which is not needed. + (this was easier to do). + gras_datadesc_cpy needs to provide the size of the corresponding messages, so + that we can report it into the simulator. + +- a init/exit mecanism for logging appender +- more logging appenders + +- when a send failed because the socket was closed on the other side, + try to reopen it seamlessly. Needs exceptions or another way to + differentiate between the several system_error. +- cache accepted sockets and close the old ones after a while. + Depends on the previous item. + + +### +### A bit later +### + +- Adaptative timeout +- datadesc_set_cste: give the value by default when receiving. + It's not transfered anymore, which is good for functions pointer. + +============================================================================ * while (1) { fork; exec the child, wait in father } -* message forwarding + + - core ok (errors, logs ; dynars, dicts, hooks, pools; config, rrdb) + - virtualize (linux, solaris, SG) & conditions + - binary representation: any type, SNWF (Sender Native Wire Format) + - modules (log control, manage, token ring, bw) + - cleanups, documentation [autoconf] - Check in autoconf that no datatype is bigger than 64, or dynar_map will - get into trouble... + Check the gcc version on powerpc. We disabled -floop-optimize on powerpc, + but versions above 3.4.0 should be ok. + The ucontext usability test is too light. It returns success on IRIX, but + shouldn't since ucontext are broken for us there. [portability layer] - Make a script to test how the padding bytes are on the current arch, and - constitute a bestiary. - Use Arnaud's structure parser in a macro - Dynar of type, such as ref of type - Generate convertors in assembler ? Mallocators [Messaging] Message forwarding Message priority - Messages in a tree manner + Message declarations in a tree manner (such as log channels) -[network drivers] - Interface: open_server, open_client, read, write, flush, close - Implementations: TCP, SG (more after my PhD). - [errors] Better split casual errors from programing errors. The first ones should be repported to the user, the second should kill @@ -36,39 +85,22 @@ - libgpg-error [logs] - Parse argv (check leonie and tbx_arg_iterator in tbx_parameter.h) Several appenders; fix the setting stuff to change the appender Hijack message from a given category to another for a while (to mask - initializations) + initializations, and more) + Allow each process in simulation to have its own setting [dict] - Make a real container for the dict, so that the free function may be given - only once for the whole tree (would help to send dicts). - dichotomie in search speed up the cursors, for example using the contexts when available fix multi levels dicts +[datadesc] + Error handling in cbps + Regression tests of cbps + ********* * GRAS1 * Integrer grassouillet a gras; multiplexage XML; module de comm ********* -[type_bag SG] - un peu comme les type_bag RL, mais sans tenir compte d'incoming ni - outcoming. - La finesse est de simuler la taille des envois sans les faire - On peut aussi imaginer une version faisant ces envois effectivement, qui - serait un peu plus lente, mais permettant de debugger cette partie de - grassouillet - -[pilotes reseaux de sous grassouillet] - TCP: utilise le fd. rien a faire. - SG: Le send fait le boulot de malloc du recv de fd, et les rempli comme le - send de fd. - BLOC: Un nouveau truc, qui envoi des trames les unes derriere les autres, - un write copie dans un buffer qui, quand il est plein, part sur la socket - avec sa taille devant, et son CRC derriere. - C'est le prix a payer pour ne plus mourrir si vite en cas de transmission - pourrie (mais ca resoud tjs pas le pb du code malicieux) - Possibilite de compresser les buffers avant l'envoi.. [simuler le select sur les sockets avec des threads] Le plan, c'est qu'a l'ouverture d'une socket server, on cree un thread @@ -149,71 +181,42 @@ selects sur un pool {leur socket x un pipe fait pour} Quand qqch arrive sur le pipe, c'est le signal du suicide. -[Conversions inter-architectures] - Marquer les padding bytes explicitement aux structures (juste le sizeof - doit suffire) - Marquer les offsetof des fields explicitement a l'ajout. - Prevoir tous les encoding pour les types elementaires - [taille, sexe, signess[non, a un, a deux]] - plus les flotants, justifiant un traitement a part - Tester avec autoconf les encodings sur l'archi courante - Trouver un moyen de convertir un encoding en un autre (si possible par - blocs) - Generer ces convertors en assembleur a chaud, puisqu'on a rien de mieux a - foutre de notre temps +[Inter-arch conversions] + Convert in the same buffer when size increase + Exchange (on net) structures in one shoot when possible. + Port to really exotic platforms (Cray is not IEEE ;) [XML] - Tout comme c'est dit dans les articles - -[Macro parseuse] - Gerer les typedefs (necessite de l'aide de grassouillet) - Gerer les pointeurs. - Faut des annotations pour dire si c'est : - - un AZT - - un tableau dont la longueur est ailleurs dans la struct - - une ref - Ca peut se faire soit avec des commentaires, soit avec des macros se - reecrivant a rien dans la vraie vie, et parsee. Mais le risque est que - ces macros soient reecrites avant d'etre passee a mon bordel, selon les - cpp. - Gerer les unions => specifier des annotations, mais j'y crois pas - Gerer les enum - Gerer les long long - Gerer les types struct, union et enum anonymes au milieu d'un autre bloc de - donnees. - Verifier que "char"="signed char" sur toutes les archis + Do what is written in the paper (multiplex on incoming HTTP) + +[DataDesc and Parsing macro] + Handle typedefs (needs love from DataDesc/) + Handle unions with annotate + Handle enum + Handle long long and long double + Forbid "char", allow "signed char" and "unsigned char", or user code won't be + portable to ARM, at least. + Handle struct/union/enum embeeded within another container + (needs modifications in DataDesc, too) - Renomer gs_parse_tok_num en gs_parse_token Check short a, b; Check short *** Check struct { struct { int a } b; } -[Grassouillet] - Gerer les typedefs pour aliaser un type sur un autre - Merger gs_type_union_append_field et gs_type_struc_append_field si possible. - Gerer les enum ? - gs_type_copy/gs_type_free - A quoi sert le champ name de gs_type_struct_append_field ? - Ca plante bizarement si on met une structure n'existant pas dans le - message (a l'usage) - gs_type_dump, nardin, comment voir ce qui se passe sinon ?? + Factorize code in union/struct field adding -[Autres] - Simplifier l'API pour virer les sequences - Faire le parseur automatique de structures - Faire toutes les modifs aux Utils listees plus haut - Simplifier l'envoi de dynar et dico - Mettre les mutex et semaphores dans les dynar directement - Tenter (politiquement) le passage a GPL, pour voler du code. +[Other] + Allow [homogeneous] dico to be sent + Make GRAS thread safe by mutexing what needs to be ************ * La suite * ************ GRAS double (ou encore "GRAS too" ou "too GRAS"): - - Priorite des messages - - Outils de visu pour ce qui se passe dans le simulo - - Outils de visu/deployement/management pour RL + - Message prioritization + - Visualisation tool to see what happens in the simulator (Paje ?) + - Tool to visualize/deploy and manage in RL GRAS (très): - outils mathematiques pour dire des choses sur la validite du protocole