X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6b104e3470faa218aeb35dd13739208cbc09ab65..e0d3ce3ae644257d5260f2cda5599efdcf59e040:/TODO diff --git a/TODO b/TODO index c465143b7d..25702bd350 100644 --- a/TODO +++ b/TODO @@ -1,30 +1,80 @@ -* 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? + +- rawsock + Check that messages don't go on raw socks + Rename to meassock or whatever to show that they're not intended for + out of band communication, but for socket operation measurements. + +- 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. + +- callback on reception ?? (to put functions pointer back in place, etc) + +- category "ignored" should be dropped, since it's not portable (what's its + size on remote site?). But function's pointer may benefit from it. + We could change it to an attribute just as the "cycle" one. That way, it + would get malloced, but not transfered. + +### +### 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,15 +86,12 @@ - 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 @@ -52,21 +99,12 @@ Error handling in cbps Regression tests of cbps +[testsuite] + use logging, not printf + ********* * 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. [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 @@ -147,71 +185,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 ?? + Factorise 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] dynar and 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